【问题标题】:Creating Jar file - doesn't work on other computers创建 Jar 文件 - 不适用于其他计算机
【发布时间】:2012-02-13 15:45:34
【问题描述】:

我正在尝试将我的程序打包成一个 JAR 文件,以便它可以在多台计算机上使用。

我的程序由start.javauserinterface.javawriter.java组成。

这个程序是用 Eclipse 编写的,可以在我的电脑上完美运行。导出后可以在我的电脑上运行,但在其他电脑上会出现以下错误:

"Could not find the main class: start. Program will exit".

再次,当我双击它时,我的程序在我的计算机上运行良好。

我尝试通过命令提示符创建 JAR 文件,我的 Manifest 文件是正确的。发生了什么?

【问题讨论】:

  • 也许他们的 JVM 版本低于您编译时使用的版本?
  • 好吧,我已将文件附加到我的主帖中,也许你愿意试一试?
  • 如果您使用例如 JDK 6 编译该程序,那么该程序将不会由 JRE 5 启动。@GuillaumePolet 是对的:您使用什么版本编译然后在另一台机器上运行?
  • 好的,我得到的结果和你的同事一样。我有一个 JVM 6,但您使用 JVM 7 编译。要么让它们升级到 JVM 7。要么使用 -target 6 编译
  • 可能是从那台计算机上使用 JVM 运行时内存不足。在我的情况下发生了很多。在该计算机上运行时为-Xms-Xmx 设置VM 参数。这仅适用于 JVM 是同一主要版本的情况。

标签: java jar executable runnable


【解决方案1】:

这是一个很奇怪的bug,我也遇到过。

假设您使用的是JRE 1.7
我发现解决此问题的唯一方法是将项目的 JRE 版本从 1.7 更改为 1.6

编辑:我在装有 JVM 7 的计算机上也遇到过这个错误。

【讨论】:

  • 嗯,有时我会使用JRE 1.7 编译项目并且它们会正常工作,而其他一些项目也遇到了同样的问题——即使我已经在使用 JVM 7 的计算机上尝试了所有这些 jar。
  • 我尝试使用 -target 6 标志,但出现错误:目标版本 6 与默认源版本 1.7 冲突。我该如何解决这个问题?谢谢
  • @user1147964 我使用 Eclipse 来执行此操作,所以我不确定命令行等效项是什么。我建议你尝试使用 Eclipse。
  • 我刚刚使用 eclipse 完成了它,它可以在另一台计算机上运行 - 感谢您的帮助。问题是 1.6 不支持 JComponents 中的 HTML,这有点烦人——我想我得强制它们更新。
  • “1.6 不支持 JComponents 中的 HTML” 当然支持! Swing 在样式文件(JLabelJEditorPane ..)中支持 HTML,自 1.2 首次引入以来。
【解决方案2】:

我相信这是因为您尝试从 默认包 中为 Main-Class 属性指定一个类文件。 JAR 文件和默认包并不能很好地混合。我建议将您的整个项目放入一个简单的包中(据我从附加的 JAR 文件中看到的,您只使用默认包)。

另外,尝试采用common Java conventions(很难分辨什么是类,首先我认为存在一些特定于包的错误,即使用Start 而不是start 作为类名)。

另一个常见问题是MANIFEST.MF 文件的最后一行未被解释,如in the Java tutorial 所述:

警告:

文本文件必须以换行符或回车符结尾。如果最后一行没有以换行符或回车符结尾,则无法正确解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 2015-11-02
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多