大家好!
我有一个带有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除外)上完成的。有人可以帮我解决这个问题吗?
最诚挚的问候!
答案 0 :(得分: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
第一条规则:您的本地PC和服务器上的Java版本必须相同。否则可能会出现这种不必要的问题。
如需更多检查,您可以查看
java --version
javac --version
它将澄清jdk和jre版本不匹配。如果它显示各种版本,则卸载其他版本并构建项目并在服务器上部署。
另一个答案与您的问题类似:Cannot compile Java code - "class file has wrong version 52.0, should be 48.0"