我刚刚开始使用Java。我一直在按照这个问题的答案中的说明来编译和运行我的第一个 Java 程序。我刚刚安装了 JDK 11 并将路径设置为C:\Program Files\Java\jdk-11\bin. 完成后,我已经能够使用以下命令编译我的程序:
javac HelloWorld.java
(该文件名为HelloWorld.java。)
因此HelloWorld.class,目录中会出现一个名为的文件。现在我尝试使用以下命令运行程序:
java HelloWorld
这不起作用。我得到以下输出:
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)
我看过这个问题,结合我收到的错误消息向我表明,无论 Java 正在运行我的程序,它都适用于比我的编译器正在生成的旧版本文件。
按照上述问题的答案的建议,我尝试运行javac -target 8 HelloWorld.java. 但是,这也不起作用。我收到以下警告:
warning: target release 8 conflicts with default source release 11
并且没有HelloWorld.class被创建。
我有一种感觉,我需要 Java Runtime Environment 11,但我不知道您是如何获得它的。搜索诸如“get JRE 11”之类的查询会将我返回到提供“版本 8”的主要 Java 下载页面。
附录:我保存的目录HelloWorld.java称为java,如果这有什么不同的话。
HUWWW
慕田峪7331174
慕妹3146593
相关分类