我的Java软件可以转换为.exe软件吗?

时间:2009-07-28 08:27:28

标签: java jar exe

如果不学习新的编程语言,我们可以直接使用Java get .exe(可执行的Windows文件)软件吗?有没有让.jar(Java ARchive)软件转换为.exe(可执行的Windows文件)?

这种转换会影响软件的性能吗?

7 个答案:

答案 0 :(得分:6)

Java的一个重点是它可以在安装了合适的Java虚拟机(JVM)的任何平台(例如Windows,Linux等)上运行。编译.exe文件只能在一个平台上运行。

您认为您想要的是将.jar变成.exe,以便您可以轻松启动它。我希望你真正想要的只是一个简单的方法来启动任何人都能理解的Java应用程序,包括你的父母。

最简单的方法是创建一个启动Java应用程序的Windows批处理文件。一行脚本,一个新文件,一个给用户的新指令 - “双击runme.bat”

有一些方法可以将.jar转换为.exe,但你应该考虑这是否真的是你想要的,如果是,为什么。

注意:只要在清单中指定了主类,只需双击即可在Windows中启动.jar。您可能希望查看Apache Ant之类的工具来简化构建.jars及其清单。只是一个想法。

编辑:

Windows中的批处理文件是一个包含命令的简单文本文件。您可以通过在命令提示符下运行命令来测试命令(开始 - >运行 - > cmd)。运行批处理文件时,其中的命令只会一次一个地送到命令提示符。

如何从命令提示符运行Jar:“java -jar myfile.jar”

如果您创建一个批处理文件(.bat - 使用记事本或您喜欢的文本编辑器),其中包含“java -jar myfile.jar”(不带引号!),则双击它将启动清单中指定的主类of myfile.jar。但是,myfile.jar必须与批处理文件位于同一文件夹中。

如果您使用命令“java -jar lib \ myfile.jar”(再次,不带引号),那么您的批处理文件将运行myfile.jar,该文件需要位于名为lib的文件夹中,该文件夹位于同一文件夹中批处理文件。当你的应用程序中装满了大量的Jars并且你不想将它们推到用户面前时,请使用这种方法:)

请注意,移动批处理文件会破坏它,除非它使用jar文件的绝对路径 - 例如“java -jar C:\ dev \ myfile.jar”。当然,如果你使用绝对路径,那么移动Jar会破坏批处理文件:)

另外,请注意,只要在清单中指定了主类,就可以在Windows中双击它来运行Jar文件。试试看。当然,说服用户他们可以双击它完全是另一回事......

最后请注意,如果您使用批处理文件,您的用户将在后台获得一个很好的命令提示符窗口,直到您的Java应用程序关闭。也就是说,除非您使用“start”启动批处理文件命令。例如。 “启动java -jar myfile.jar”。如果您将应用程序配置为记录到System.out或System.err,则当您的应用程序写入其中任何一个流时,仍会收到命令提示符。

最后的最后一点,在Linux世界中,相当于批处理文件的是shell脚本。

答案 1 :(得分:4)

您可以使用Runtime.exec()或ProcessBuilder从java启动.exe。

您可以使用http://launch4j.sourceforge.net/

制作.exe启动器

答案 2 :(得分:4)

答案 3 :(得分:2)

我不确定这是否是一个合适的答案,因为我不使用Java但是你不能使用指向java运行时的快捷方式文件并将jar作为参数传递,这个

我意识到这不是唯一的方法,也不是最好的方式,但对我而言,它比创建批处理或转换为exe文件更好一点,如果您正在寻找的是一种方便的方式来启动java应用

答案 4 :(得分:2)

最简单的方法是编写一个启动应用程序的Windows批处理(.bat)文件。

答案 5 :(得分:1)

我使用java的包装器来制作exe文件很长时间了:

JStart32 它只是* .jar文件的包装。

但问问自己: 难道exe不会扼杀javas平台独立性的目的吗?

答案 6 :(得分:1)

结帐jsmooth(免费)和exe4j,您可能需要阅读make your swing app go native