Runnable jar适用于Mac;在Windows上给出主类错误

时间:2015-03-26 18:43:26

标签: java eclipse windows jar

我在Mac上使用Eclipse生成应用程序,并使用File Export生成Runnable Jar。我生产的Runnable Jar文件在我的Mac和另一台Mac上运行愉快。但是在两台不同的Windows机器上,它们并没有。我已四处寻找答案,并尝试了以下方法: 1)当我双击罐子图标时没有任何反应 2)当我打字时         java -jar Luscinia.jar
在命令提示符下,我得到:
        "无法找到或加载主类lusc.net.github.Luscinia"
3)当我打字时         java -cp Luscinia.jar lusc.net.github.Luscinia
我收到相同的错误消息。

  • 其中一台Windows机器上的JRE(至少)是最新的 (1.8.0_40)。 Mac上的JRE也是如此。
  • 我的jar里面的文件结构确实有 Luscinia.class嵌套在github,net和lusc目录中。
  • 清单包含以下行:
       Class-Path:。
       主班:lusc.net.github.Luscinia
    (&它在底部包含两个空白行)
  • 其他jar在两台Windows机器上运行良好。
  • 再次强调,它在两台Mac机器上运行良好。

有什么想法吗?

  • 我检查了EOL角色是否有效果。将其更改为Windows \ r \ n没有任何效果。 (感谢RealSkeptic的想法)。

2 个答案:

答案 0 :(得分:0)

您确定您的类不会尝试加载Windows JRE中不可用的Mac特定类(供应商私有类吗?如Windows上的com.sun类),或者它不会缺少必需的类路径中的依赖项。主要课程?

如果你的一个依赖类在主类被加载时(例如在静态块中)无法加载,那么它也无法加载导入类,你可以解决这个问题。

无论如何,拥有主类的来源可以帮助找出问题。

答案 1 :(得分:0)

DarkRift提供的答案是正确的:

隐藏在一个文件中是对com.apple ...类的引用,这个类是多余的,并且严格地说,是特定于平台的。

在这种情况下,当我收到错误消息时:

Could not find or load main class lusc.net.github.Luscinia

这意味着“无法加载”而不是“无法找到”。感谢您的所有建议。