今天我自己编写了一个小游戏,我通过Eclipse将其编译成一个jar -我确保它是一个可执行的jar,或者可运行的jar,或者你想叫它什么。
我把这个罐子寄给了我的一个朋友,但奇怪的是他打不开。他总是收到"找不到主类"的错误,这应该不会弹出,因为它对我来说是完美的。我已经用谷歌搜索过了,但是没有找到答案。
如果你感兴趣,你可以看看这里,如果它适合你:http://www.file-upload.net/download-3939961/WidzDeluxe.jar.html
现在我有一个很明显的问题,我想,这个错误是只有他一个人的,还是你们都有同样的问题?它的原因是什么?
如果人们愿意,我也上传代码。
您已经用不同(更高)版本的Java编译了绑定在这个jar中的类文件。假设它是Java 1.7,而你的朋友正试图用Java 1.6打开它。
这是我收到的堆栈跟踪试图打开你的可执行jar与Java 1.6.0_21:
Exception in thread "main" java.lang.UnsupportedClassVersionError: NewJFrame : Unsupported major.min
or version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
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$000(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)
Could not find the main class: NewJFrame. Program will exit.
我想到的一个可能的解决方案是在Eclipse中的Java Compiler设置中将遵从性级别设置为6.0。
我有同样的问题,发现我正在为Java 1.7编译程序。最后,我更新了我所有运行Java的电脑上的Java,它运行得很好。