【发布时间】:2018-07-30 17:34:37
【问题描述】:
所以我编写了一个小程序供妈妈使用。我将它导出到runnable .jar,这对我来说是第一次,所以我显然把它搞砸了。
实际上,该文件在我的计算机上运行良好。但是当我在她身上尝试时,双击文件只会给我一个错误:“找不到主类:controller.Main”。而且程序不会启动
我使用 eclipse GUI 导出它(右键单击 projet -> 导出 -> 可运行的 JAR),它给出了一个在我的计算机上运行良好的文件。 如果它有任何帮助,我的程序使用了一堆资源文件,但我将它们包含在我给我母亲的文件夹中的正确位置,所以它不应该是问题(此外,它会在尝试时出现故障根据一些个人测试,使用图像,但不会阻止它启动)
它可以在我的设备上运行但不能在另一个设备上运行的原因(两个 Windows)可能是什么原因?以及如何解决这个问题?
N.B:我在导出之前在我的项目中包含了一个 MANIFEST.MS 文件,但是 Eclipse 在导出时没有明确提及它,所以我认为它没有考虑到它。此外,我将我的主要课程称为Main(而不是controller.Main,就像我在母亲的电脑上收到的错误消息一样)。这可能是我的错误,但我认为这表明 Eclipse 不太关心我的清单,并且有点自己的。
提前致谢! 如果您想要下载文件夹的链接,自己检查一下,请告诉我! (虽然有点重,图挺多的)
编辑:我在不同的计算机上收到不同的错误消息。一台电脑会给我第一条信息: first computer error
另一台计算机给了我这 2 条错误消息(一个接一个)
当然,它在我的电脑上仍然可以正常运行,只需双击!
我的 .jar 文件(作为存档打开)包含:
我的包对应的3个文件夹:控制器、模型、视图
-
1 文件夹 META-INF 包含 Eclipse 生成的 MANIFEST.MF,如下所示:
Manifest-Version: 1.0 Main-Class: controller.Main Class-Path: .
【问题讨论】:
-
当你用eclipse创建一个可运行的jar文件时,eclipse会自动生成MANIFEST。如果您想在“Main-class: Main”中包含您自己的清单,那么您应该在 eclipse 上执行 projet -> export -> JAR 并选择您的 MANIFEST 文件。您是否尝试过使用 RAR 或 ZIP 打开两个 jar 文件(一个在您的计算机上,一个在您母亲的)(可能内容不同)?
-
感谢清单上的这个精确度,但实际上我相信 Eclipse 比我的更重要:D 我没有尝试打开 jar,因为它们确实是相同的文件(我只是从我的计算机上的 USB 密钥,并给了它)。你认为这有什么不同吗?
-
你能写/打印完整的堆栈跟踪/错误吗?
-
当然。检查编辑后的消息以获取我在不同计算机上遇到的各种错误的屏幕截图
-
你提到了一些资源文件。这些资源是DLL文件吗?您是否使用本机函数调用(取决于操作系统)?