我卸载了 Eclipse IDE,因为这问题。然后我尝试在我的 Linux mint 终端中运行 java 程序。所以我从一个小代码开始
public class Myth{
public static void main(String[]args){
System.out.println("Hii There");
}
}
并通过给出命令来运行它javac Myth.java
,java Myth
但不给出输出,它会给出以下错误
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=Myth, offset=6
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:379)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:154)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:729)
at java.net.URLClassLoader.access$400(URLClassLoader.java:95)
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1184)
at java.security.AccessController.doPrivileged(AccessController.java:732)
at java.net.URLClassLoader.findClass(URLClassLoader.java:604)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:926)
at java.lang.ClassLoader.loadClass(ClassLoader.java:871)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:343)
at java.lang.ClassLoader.loadClass(ClassLoader.java:854)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:507)
答案1
这
java.lang.UnsupportedClassVersionError 错误
意味着您项目中的某些库正在使用不同版本的 java ,并在 path 中进行相应设置。解决此问题的快速方法:
$>which java
输出->当前java的位置(例如/usr/bin/java)
java --version
输出->1.7.0 或 1.8.0 如果是这种情况,请尝试切换版本,为此执行以下操作:
export JAVA_HOME=<path to diff java version sdk>
export PATH=$JAVA_HOME/bin:$PATH
这允许新路径位于旧路径前面,对于 Eclipse 特定错误,请查看主目录中的 Eclipse 缓存(项目中的 .eclipse 文件夹)。您可以安全地删除此目录以及 .project 文件(如果有)并重新编译。
编辑:Offset=6 表示您当前的 java(JDK) 版本是 1.6。尝试切换到更高版本。另请检查您使用的是 Jdk 路径而不是 jre 路径