【问题标题】:Creating exe from jar file that runs on other computers从在其他计算机上运行的 jar 文件创建 exe
【发布时间】:2012-11-19 20:15:17
【问题描述】:

我有一个简单的应用程序,由 3 个类组成,分别是 PercentIdentity.javaGUI.javaAligner.java

我正在使用 Intellij Idea 11.1.3(我也尝试使用 Eclipse)和 JRE 1.7。我的操作系统是 Win 7 x64。

当我双击使用 Intellij 创建的 jar 文件时,我的程序运行良好。此外,当我执行命令“java -jar *.jar”时它可以工作,其中 * 是我的 jar 文件的名称。

现在我想创建一个 .exe 文件,这样我就可以在其他计算机上运行该程序。

我用 Winrar 打开了 .jar 文件,我可以在 META-INF 文件夹中看到清单文件 (MANIFEST.MF)。

我的清单文件:

Manifest-Version: 1.0
Main-Class: com.example.PercentIdentity (with an empty line in the end)

Launch4jJSmoothIExpress 上花费了大量时间后,我设法创建了可以在我的电脑上完美运行的 .exe 文件计算机。但是,当我在另一台计算机上运行 .exe 文件时(再次使用 Win 7 x64),它会给出错误:

"Java 虚拟机启动器: 无法找到主类: com.example.PercentIdentity。程序将退出。”

我的JSmooth设置如下:

骨架选择:窗口包装器

可执行文件:test.exe

当前目录:. (不知道该放什么)

主类:com.example.PercentIdentity

嵌入式 Jar:*.jar

类路径:*.jar(同上)

最低 JVM 版本:1.0 最大 JVM 版本:1.7

我在 Launch4j 中使用的设置:

输出文件:C:\Users\{name}\Desktop\test.exe

罐子:*.jar

(我没有选中“不要包装罐子”复选框)

清单:(空)

最低 JRE 版本:1.0

我在另一个类似问题中阅读了一个答案,该问题可能是由于 JRE 1.7 而出现的,所以我也尝试了 1.6。但是,这一次它甚至在我自己的计算机上都没有运行。

有人知道我该如何解决这个问题吗?

提前致谢。

【问题讨论】:

  • “现在我想创建一个 .exe 文件,这样我就可以在其他计算机上运行该程序。” 你不是说“其他版本的 Windows”吗?更好的部署策略是使用Java Web Start。如上面链接的 Wiki 中所述,使用deployJava.js 确保用户具有正确的最低 JRE。
  • 我在我的桌面上开发了这个程序,它有 Win 7 x64。我正在尝试在我的笔记本电脑上运行它,它也有 Win 7 x64。所以,我希望 .exe 在所有具有 Win 7 x64 和 JVM 的计算机上工作。我对 Java Web Start 了解不多,但我现在会检查一下。谢谢!
  • 你解决过这个问题吗?我有一个非常相似的问题。

标签: java installation java-web-start launch4j jsmooth


【解决方案1】:

在 Jsmooth 中,.jar 是类路径吗? 不要说这很重要,可以为罐子留空(隐式位置), 当前目录可能比点留空更好,如果有的话。

对于主类,您可能只需说“PercentIdentity”作为类路径和路径被搜索,因此如果 .jar 中只有一个,它将被选中。

关于暗示 jar 在哪里可能会给出一个空白符号,或者在某些配置文档中给出符号 . , dot 通常用于 web 服务器目的,除非它是 .在 windows 或 ./ 在 unix 中表示“此目录在其中”。

如果你想学习少量的 C/C++,你可以使用一个简短的班轮 execv() 函数和一个数组或 execlp() 函数和一个列表,但是您需要学习大量的 C/C++ 才能使用 **args 指针数组来传递命令行参数。

【讨论】:

  • 我尝试将类路径留空。它没有用。在“当前目录”中,无论我放 .\ 还是 \ 它都会将其转换为点。所以,这次我把它留空了。仍然以同样的错误结束。当我在主类部分只放“PercentIdentity”时,exe 根本没有运行。我认为这部分是正确的。它需要包名。
猜你喜欢
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 2018-04-23
  • 1970-01-01
  • 2020-04-14
  • 2018-01-06
  • 1970-01-01
相关资源
最近更新 更多