2014-07-16 77 views
1

使用一个小型网络程序播放,使用netbeans创建了一个Jar。运行在我的电脑上的Java 1.7.0.60,但只是罚款我把它给了Java的1.7.0_65它不会运行新版本的另一台计算机的时候,我得到这个错误:在另一台计算机(其他Java版本)上运行Jar时的异常

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的帖子,已经看过,但没有运气。我相信它的版本差异。任何意见将不胜感激,谢谢!

+1

[类文件版本52似乎是Java 8](http://en.wikipedia.org/wiki/Java_class_file)。当然你在你的机器上使用Java 7运行它? – Thomas

+1

AFAIK它将只会有所作为,如果你将在Java 7中编译它,并尝试运行它在Java 6 – SparkOn

+2

@ M.Sharma否,这将是相反的方式。较旧的类文件版本将被执行(例如,Java 7可以运行为Java 6及更低版本编译的类),但更新的版本仅被报告为不受支持。 – Thomas

回答

1

为Java 7编译的Java类文件具有主/次版本51/0。如果您的JVM实现没有为Java 7做好准备,它会给你这个错误提示“我不知道如何解释和运行这个类文件”。

尝试编译旧JVM版本或升级JVM。

使用目标并指定需要使用目标开关后跟版本号执行的版本。

javac -target 1.7 yourJarName.jar 
相关问题