Win 10,x64,jdk 1.8.0_201
我刚刚编译并尝试运行我的第一个Java程序,
class A {
public static void main(String args[]){
System.out.println("Hello world");
}
}
我通过命令行使用
进行了编译javac FirstProgram.java
起初Windows并没有选择编译器,但后来我在D:\Program Files\Java\jdk1.8.0_201\bin
变量中添加了PATH
,得到了一个名为A.class
的文件,没有编译错误。
但是当我尝试通过在命令行中输入A.class
来运行java A
时,会得到以下信息……
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: A 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 -version
并获取...来检查我正在运行的Java版本。
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
所以我很困惑为什么这行不通?即使与我的运行时环境使用相同的jdk版本,我也不使用兼容的编译器吗? (请不要提供有关使用IDE的建议)