生成的Runnable jar:找不到主类

时间:2011-12-25 11:37:53

标签: java eclipse

我一直使用导出 - > 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(之后+两个空行)

两个主类文件都已确认位于各自的位置。

3 个答案:

答案 0 :(得分:3)

导出jar文件时,指定哪个是主类很重要。您可以在eclipse向导中执行此操作。要进入此屏幕,您只需将其导出为一个jar而不是Runnable jar。

enter image description here

找出错误的另一个选项,尝试打开命令提示符(在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,我修复了所有引用以指向正确的版本。