与编译器Java问题不同的运行时环境?

时间:2019-03-10 15:59:52

标签: java compilation

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的建议)

0 个答案:

没有答案