编译任何 Java 代码后,当我尝试从 cmd 运行它时,我得到:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
我有:
jdk-11.0.1
jre1.8.0_192
我还有jdk/bin
在我的PATH
环境适宜。当我使用 IDE 并且我的 PC 识别 java/c -version
时,代码运行良好命令。
最佳答案
class file version 55.0
表示此 .class 文件 is compiled with JDK 11 。该文件允许在 Java 11 或更高版本上运行,但您的 java
正在使用该 jre1.8.0_192
。
您应该更改 JAVA_PATH
或 PATH
环境变量,以使命令 java
指向 Java 11 版本的 java
,例如位于 jdk-11.0.1
中的那个,或者在 jdk-11.0.1
中使用该 java.exe
> 运行这个 .class 文件。
关于java - 尝试通过cmd运行java代码时出现JNI错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53504963/