运行Java应用程序OSX出错



我目前正在开发一款面向OSX的Java游戏(未来可能会有Windows版本)——我决定导出游戏的Pre-Alpha/Alpha测试——看看引擎在Eclipse之外是否能正常工作。当我试图运行应用程序时,它几乎立即退出,抛出以下错误(在控制台中):

14-07-29 8:57:02.190 AM [0x0-0x1c21c2].10Plus: [JavaAppLauncher Error] CallStaticVoidMethod() threw an exception 14-07-29 8:57:02.190 AM [0x0-0x1c21c2].10Plus: Exception in thread "main" 14-07-29 8:57:02.190 AM [0x0-0x1c21c2].10Plus: java.lang.UnsupportedClassVersionError: ten/plus/Game : Unsupported major.minor version 52.0 14-07-29 8:57:02.190 AM [0x0-0x1c21c2].10Plus: at java.lang.ClassLoader.defineClass1(Native Method) 14-07-29 8:57:02.190 AM [0x0-0x1c21c2].10Plus: at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637) 14-07-29 8:57:02.190 AM [0x0-0x1c21c2].10Plus: at java.lang.ClassLoader.defineClass(ClassLoader.java:621) 14-07-29 8:57:02.190 AM [0x0-0x1c21c2].10Plus: at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 14-07-29 8:57:02.190 AM [0x0-0x1c21c2].10Plus: at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 14-07-29 8:57:02.190 AM [0x0-0x1c21c2].10Plus: at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at java.security.AccessController.doPrivileged(Native Method) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at java.lang.Class.forName0(Native Method) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at java.lang.Class.forName(Class.java:249) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at apple.launcher.LaunchRunner.loadMainMethod(LaunchRunner.java:56) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at apple.launcher.LaunchRunner.run(LaunchRunner.java:112) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:51) 14-07-29 8:57:02.191 AM [0x0-0x1c21c2].10Plus: at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52) 14-07-29 8:57:02.220 AM com.apple.launchd.peruser.501: ([0x0-0x1c21c2].10Plus[3659]) Exited with code: 1

我知道代码会抛出一些ioexception -主要是由于图像加载,但它都被try/catch包围,并且当我删除图像文件并在Eclipse中运行它时不会破坏应用程序。

关于应用程序的一些注意事项:它以设备的原生分辨率全屏运行——在我的情况下是1680 x 1050——但它不像一个普通的全屏应用程序。例如:在大多数全屏应用程序中,如果你将鼠标移动到屏幕顶部,一两秒钟后苹果菜单栏就会下降(随着时间等),但这个不会。我不确定这是否需要专门编码,但这不是我真正需要的功能。我使用线程,但它不被称为"主"-这让我想知道:Exception in Thread "main"应用程序应该运行在1.6+版本中,因为这是我从Eclipse导出时选择的版本。最后,我同时使用AWT和SWING。AWT图形,KeyListener等…和SWING用于窗口处理。

关于我的计算机软件/硬件的一些说明:我在一台15英寸的MacBook Pro上运行OSX 10.7.5——2011年初——正如我之前说的,我的分辨率是1680x1050。根据Java首选项,我正在运行Java 8 Update 11,但根据终端,我正在运行Java 6 Update 65 -两者都是SE。(当我打开我的世界我得到这个对启动器的启动[09:48:29 INFO]: System.getProperty('java.version') == '1.6.0_65'结束)

最后一个工作导出是我从Eclipse Kepler导出的最后一个导出-我相信它是1.4.3。那个版本没有IO,在1200x875的窗口中运行。

如果我是正确的,这是我从Luna - 1.4.4导出的第一个。

我将尝试在不同版本的Java中使用Kepler和Luna导出应用程序-以防Luna导出器或Java版本出现问题。

提前感谢!

请注意:我是Java的初学者/中级,所以如果我在某个地方犯了一些明显的错误,请原谅我。

如果你已经在Java版本X上编译了你的代码,你正在尝试在低于X的Java版本上运行程序。运行程序的版本应该是>= X。所以总是尝试在用户期望使用的最低版本的Java上编译程序。

最新更新