为啥当我将我的国际象棋项目作为可运行的 jar 文件运行时,我得到一个奇怪的行为,而当我在 eclipse 中运行它时,一切正常?
Posted
技术标签:
【中文标题】为啥当我将我的国际象棋项目作为可运行的 jar 文件运行时,我得到一个奇怪的行为,而当我在 eclipse 中运行它时,一切正常?【英文标题】:Why when I run my chess project as a runnable jar file I get a strange behavior while when I run it inside eclipse everything works just fine?为什么当我将我的国际象棋项目作为可运行的 jar 文件运行时,我得到一个奇怪的行为,而当我在 eclipse 中运行它时,一切正常? 【发布时间】:2012-05-11 04:32:22 【问题描述】:有一天,我决定通过构建一个简单的国际象棋游戏来测试我的 Java 技能。我花了一些时间,过了一会儿我完成了。现在问题从这里开始:我想把我的游戏发给我的朋友,所以我通过 Eclipse 创建了一个可运行的 jar 文件。令人惊讶的是,可运行 jar 文件中的游戏显示了一些奇怪的行为,例如 Pieces 出现在它们不应该出现的地方以及一些其他奇怪的错误,但没有任何例外。当我意识到当我在 Eclipse 中运行项目时,我更加惊讶了,一切都像它应该的那样工作。我也尝试通过Eclipse创建一个普通的jar文件并运行它,但是我得到了以下NPE错误:
01/05/12 19:47:30.433 [0x0-0x54054].com.apple.JarLauncher: Exception in thread "main"
01/05/12 19:47:30.498 [0x0-0x54054].com.apple.JarLauncher: java.lang.NullPointerException
01/05/12 19:47:30.498 [0x0-0x54054].com.apple.JarLauncher: at sun.launcher.LauncherHelper.getMainClassFromJar(LauncherHelper.java:399)
01/05/12 19:47:30.498 [0x0-0x54054].com.apple.JarLauncher: at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:463)
我已经在这个网站上发布了一个关于此的问题,但我没有得到正确的答案,所以我也发布了这个问题。这是另一个问题的链接:Getting a strange behavior when creating a runnable jar file on eclipse for my Chess project。
【问题讨论】:
Eclipse 在幕后做着没有它就无法复制的事情。你需要弄清楚那些是什么。 你的主类配置正确了吗? SO 上的其他人也有类似的问题; ***.com/questions/7368349/… 有用吗? 在 Eclipse 上,您不必自己配置 Main 类,您只需从列表中选择它即可。而且我不确定另一个问题是否有帮助,因为我在创建可运行的 jar 文件时没有收到错误。 你使用的是同一个版本的JDK和JRE吗? 【参考方案1】:您应该在可执行 jar 中包含以下清单标头:
Main-Class: classname
您可以在从 eclipse 中导出 jar 时自动执行此操作,方法是在导出 jar 向导中选择一个主类。
【讨论】:
以上是关于为啥当我将我的国际象棋项目作为可运行的 jar 文件运行时,我得到一个奇怪的行为,而当我在 eclipse 中运行它时,一切正常?的主要内容,如果未能解决你的问题,请参考以下文章
为啥当我将我的 UILabel 移动到某个点时,当我进入全屏模式时它会被移动?
为啥 Spring 项目的导出的可运行 JAR 不能在另一个系统中工作?