从在其他计算机上运行的jar文件创建exe

时间:2012-12-01 23:57:59

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

我有一个简单的应用程序,包含3个类,它们是 PercentIdentity.java GUI.java Aligner.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)

Launch4j JSmooth IExpress 上花了很多时间后,我设法创建了在我的网站上运行完美的.exe文件电脑。但是,当我在另一个计算机上运行.exe文件时(再次使用Win 7 x64),它会给出错误:

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

我的JSmooth设置如下:

骨架选择:窗口包装

可执行文件:test.exe

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

主类:com.example.PercentIdentity

Embedded Jar:* .jar

Classpath:* .jar(与上面相同)

Min JVM版本:1.0 Max JVM版本:1.7

我在Launch4j中使用的设置:

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

Jar:* .jar

(我没有勾选“不要把罐子包起来”复选框)

清单:(空)

Min JRE版本:1.0

我在另一个类似的问题中读到了答案,因为JRE 1.7可能会出现问题,所以我也尝试了1.6。但是,这次它甚至都没有在我自己的电脑上运行。

任何人都知道如何克服这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:1)

在Jsmooth中,是.jar的类路径? 不要说它很重要,可以为jar(隐含位置)留空, 如果可能的话,当前目录可能比一个点更好地留空。\(用反斜杠表示windows - 表示当前目录)。

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

关于暗示jar的位置可能是空白符号,或者在某些配置文档中给出了符号。 ,dot通常用于Web服务器目的,除非它是其中的一部分。在windows或./ in unix中意为“此目录在其中”。

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