运行Java Application OSX时出错

时间:2014-07-29 14:23:51

标签: java eclipse macos swing

我目前正在开发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

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

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

关于我的电脑软件/硬件的一些注意事项: 我在MacBook Pro 15英寸上运行OSX 10.7.5 - 2011年初 - 正如我之前所说,我的分辨率为1680x1050。 根据Java首选项我正在运行Java 8 Update 11,但根据终端我正在运行Java 6 Update 65 - 两个SE。 (当我打开Minecraft时,我会在启动器启动结束时[09:48:29 INFO]: System.getProperty('java.version') == '1.6.0_65'

我最后一次工作导出是Eclipse Kepler的最终导出 - 我相信它是1.4.3。该版本没有任何IO,并且在1200x875窗口中运行。

这是我第一次从Luna出口 - 1.4.4如果我是正确的。

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

提前致谢!

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

1 个答案:

答案 0 :(得分:0)

如果您已经在Java版本X上编译了代码,那么您正尝试在小于X的Java版本上运行程序。运行该程序的版本应该是> = X.所以总是尝试在最低版本上编译程序预计将由用户使用的Java。