所有人!
我有一个带有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)上完成的。有人能帮我解决这个问题吗?
致以最亲切的问候!
发布于 2017-10-11 23:46:39
发生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=45Java第一条规则:本地pc和服务器上的版本必须相同。否则,可能会出现这种不必要的问题。
要了解更多信息,您可以查看
java --版本
javac --版本
这将使jdk和jre版本不匹配的问题得到澄清。如果显示各种版本,则卸载其他版本,然后构建您的项目并在服务器上部署。
另一个与您的问题类似的答案在这里:Cannot compile Java code - "class file has wrong version 52.0, should be 48.0"
资源链接:
Exception in thread “main” java.lang.UnsupportedClassVersionError: com/crunchify/Main : Unsupported major.minor version 51.0
https://stackoverflow.com/questions/43745252
复制相似问题