0

每个人!

我有一个带有 jar 库的 java 程序,适用于以下 JDK 版本:

java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

我需要让它在运行以下 JDK 版本的超级计算机上编译:

java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

如您所见,它们都具有相同的 JDK,即 JDK 8。但是,在使用编译时:

javac myFile.java 

出现以下错误:

class file has wrong version 51.0, should be 48.0

似乎编译是在另一个 JDK(8 除外)上完成的。谁能帮我解决这个问题?

最亲切的问候!

4

1 回答 1

1

java.lang.UnsupportedClassVersionError 的发生是因为编译时 JDK 较高,而运行时 JDK 较低。

J2SE 8=52,
J2SE 7=51,
J2SE 6.0=50,
J2SE 5.0=49,
JDK 1.4=48,
JDK 1.3=47,
JDK 1.2=46,
JDK 1.1=45

第一条规则:本地电脑和服务器上的 Java 版本必须相同。否则可能会出现这种不需要的问题。

如需更多检查,您可以检查

java --版本

javac --版本

它将澄清 jdk 和 jre 版本不匹配。如果它显示各种版本,则卸载其他版本并构建您的项目并部署在服务器上。

另一个答案与您的问题类似: Cannot compile Java code - “class file has wrong version 52.0, should be 48.0”

资源链接:

线程“main”中的异常 java.lang.UnsupportedClassVersionError: com/crunchify/Main : 不支持的 major.minor 版本 51.0

于 2017-10-11T15:46:38.547 回答