我目前正在开发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的初学者/中级人员,所以如果我在某个地方犯了一些明显的错误,请原谅。
答案 0 :(得分:0)
如果您已经在Java版本X上编译了代码,那么您正尝试在小于X的Java版本上运行程序。运行该程序的版本应该是> = X.所以总是尝试在最低版本上编译程序预计将由用户使用的Java。