玩了一个小网络程序,用 netbeans 创建了一个 Jar。在我的计算机 java 1.7.0.60 上运行得很好,但是当我将其带到另一台具有较新版本的 java 1.7.0_65 的计算机时,它将无法运行,我收到此错误:
C:\Program Files (x86)\Java\jre7\bin>java -jar ReverseEchoServer.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: reverseechose
rver/SocketClient : Unsupported major.minor version 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)
我在这里读过几篇谈论 PATH 的帖子,看过但没有运气。我相信这是版本差异。任何建议将不胜感激,谢谢!
最佳答案
为 Java 7 编译的 Java 类文件的主要/次要版本为 51/0。如果您的 JVM 实现没有为 Java 7 做好准备,则会出现此错误,指示“我不知道如何解释和运行此类文件。”
尝试针对较旧的 JVM 版本进行编译,或升级您的 JVM。
使用目标并使用目标开关指定需要执行的版本,后跟版本号。
javac -target 1.7 yourJarName.jar
关于java - 在另一台计算机(其他 Java 版本)上运行 Jar 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24786570/