可运行的.jar文件可以在Windows设备上运行,但不能在其他设备上运行(Windows也是如此)

时间:2018-07-30 17:34:37

标签: java jar export runnable

所以我为妈妈准备了一个小程序。我将其导出到runnable .jar中,这对我来说是第一个,所以我显然搞砸了。

实际上,该文件在我的计算机上可以正常工作。但是,当我尝试使用它时,双击文件只会给我一个错误:“找不到Main class:controller.Main”。而且程序无法启动

我使用eclipse GUI导出了它(右键单击projet-> export->可运行的JAR),它给出了一个在我的计算机上运行良好的文件。 如果有帮助,我的程序将使用一堆资源文件,但是我将它们包含在我给妈妈的文件夹中的正确位置,因此这应该不是问题(此外,在尝试执行以下操作时会出现故障)根据一些个人测试,使用图像,但不阻止其启动)

在我的设备上运行而不在其他设备上运行(两个Windows)的原因可能是什么?以及如何解决这个问题?

N.B:导出之前,我已经在项目中包含一个MANIFEST.MS文件,但是Eclipse在导出时没有对其进行任何明确提及,因此我认为没有考虑到它。此外,我以Main的身份返回主班级(而不是母亲在计算机上收到的错误消息中的controller.Main)。这可能是我的错,但是我认为这表明Eclipse不太关心我的清单,并且有点自己做。

提前谢谢! 如果您想要一个链接来下载该文件夹,请亲自检查一下,让我知道! (虽然有点重,但是有很多图像)

编辑:我在不同的计算机上收到不同的错误消息。一台计算机会给我第一条消息: first computer error

另一台计算机给我这2条错误消息(一个接一个)

2nd computer error (1/2)

2nd computer error 2/2

当然,只要双击,它就可以在我的计算机上正常运行!

我的.jar文件(以归档文件形式打开)包含:

  • 与我的软件包相对应的3个文件夹:控制器,模型,视图

  • 1个文件夹META-INF,包含eclipse生成的MANIFEST.MF,如下所示:

    Manifest-Version: 1.0 Main-Class: controller.Main Class-Path: .

1 个答案:

答案 0 :(得分:0)

好!我能弄清楚。所以实际上彼此之间有两个问题:

  • 首先,我认为马丁的建议是正确的。在研究了新的错误消息之后,很明显本机调用可能与该问题有关,尽管我不知道我在使用什么本机库。我可以通过选择另一个在Eclipse导出功能中处理库的选项来解决问题的第一部分:我选择了“将所需的库打包到生成的JAR中”选项(而不是之前的“将所需的库提取到生成的JAR中”),并且它使错误消息消失!
  • 即使该消息消失了,该应用仍然无法启动。但是这次的问题更加明显了。我只是尝试使用Java 9 JDK编译并导出了该文件用于Eclipse,同时尝试在Java 8软件上运行该文件(我认为Java 9迄今为止仅在其开发人员版本中可用)。因此,我刚刚下载了Java 8 JDK,配置了构建路径以使用后者,最后它在另一台计算机上也可以使用。

感谢马丁帮助我走上了正确的问题!