我一直使用导出 - > Eclipse的Runnable jar选项已经完美运行了,但是今天看来我创建的所有Runnable jar都会产生以下错误当我运行它们时:(编辑:通过双击运行它们文件。)
Java Virtual Machide Launcher
Could not find the main class: (class). Program will exit.
过去两个小时我都尝试了一切,但它仍然无效。
.class
文件似乎都已到位...... Package required libraries into generated jar
导出,但该文件仍无效。 但它没有显示错误 - 双击该文件什么都不做。 编辑:通过cmd
运行jar文件效果很好,但只需双击它就会产生此错误。 ( Bragboy )
编辑2: 工作罐中的清单文件的内容:(显然它们是相同的,只是为了避免混淆。)
清单 - 版本:1.0
Class-Path:。
Main-Class:defender.DefenderComponent(之后+两个空行)
来自jar的清单文件的内容不起作用:(直接打开文件时)
清单 - 版本:1.0
Class-Path:。
Main-Class:pixel.Entry(之后+两个空行)
两个主类文件都已确认位于各自的位置。
答案 0 :(得分:3)
导出jar文件时,指定哪个是主类很重要。您可以在eclipse向导中执行此操作。要进入此屏幕,您只需将其导出为一个jar而不是Runnable jar。
找出错误的另一个选项,尝试打开命令提示符(在Windows中)或终端(在linux / mac中)并给出此命令java -jar your_jar.jar。这将显示正在发生的事情的详细错误。
由于你的jar在通过命令提示符启动时正常工作,明确的罪魁祸首将是windows中.jar扩展名的默认程序开放。为避免这种情况,您可能必须右键单击jar并尝试使用与您在命令提示符下运行的Java版本兼容的jar可执行文件打开。
答案 1 :(得分:2)
最后解决这个问题的唯一办法就是从JRE 1.7切换到JRE 1.6。
答案 2 :(得分:0)
我知道这是一个线程坏死,但我遇到了同样的问题。最终对我有用的是在环境变量中修复我的%JAVA_HOME%路径。事实证明它仍然指向1.6版本,这就是为什么自从我安装1.7之后什么都没有运行,除了通过Eclipse,我修复了所有引用以指向正确的版本。