发生 jni 错误

发生 jni 错误

我卸载了 Eclipse IDE,因为问题。然后我尝试在我的 Linux mint 终端中运行 java 程序。所以我从一个小代码开始

public class Myth{
public static void main(String[]args){
System.out.println("Hii There");
  }
}

并通过给出命令来运行它javac Myth.javajava 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 路径

相关内容