编译一个Java程序到一个可执行文件
可能重复:
如何为Java程序创建一个.exe文件?
我刚刚用eclipse做了一个简单的程序,我想把它编译成一个可执行文件,但似乎无法找到如何去做。 请帮忙。
您可以通过以下方式将.jar文件转换为.exe文件:
1- JSmooth .exe包装:
JSmooth是一个Java可执行包装器。 它为您的Java应用程序创建本机Windows启动程序(标准.exe)。 它使得Java部署更加流畅和用户友好,因为它能够自己找到任何已安装的Java VM。 当没有虚拟机可用时,封装程序可以自动下载并安装合适的JVM,或者只显示消息或将用户重定向到网站。
JSmooth为你的java应用程序提供了各种各样的包装器,每个包装器都有自己的行为:选择你的味道!
下载地址: http : //jsmooth.sourceforge.net/
2- JarToExe 1.8
Jar2Exe是一个将jar文件转换为exe文件的工具。 以下是他们网站上描述的主要功能:
- 可以生成“Console”,“Windows GUI”,“Windows Service”三种类型的exe文件。
- 生成的exe文件可以添加程序图标和版本信息。
- 生成的exe文件可以加密和保护java程序,程序运行时不会生成临时文件。
- 生成的exe文件提供系统托盘图标支持。
- 生成的exe文件提供记录系统事件日志支持。
- 生成的Windows服务exe文件能够安装/卸载本身,并支持服务暂停/继续。
- 新版本的x64版本,可以创建64位高管。 (2008年5月18日)
- 支持向导模式和命令行模式。 (2008年5月18日)
下载: http : //www.brothersoft.com/jartoexe-75019.html
3-执行者
将Java应用程序打包为一个jar文件,Executor会将jar文件转换为Windows exe文件,与原生应用程序无法区分。 只需双击该exe文件将调用Java运行时环境并启动您的应用程序。
下载地址: http : //mpowers.net/executor/
编辑:上面的链接是坏的,但这里是从互联网档案的页面(与工作下载)。 http://web.archive.org/web/20090316092154/http://mpowers.net/executor/
4-高级安装程序
高级安装程序使您可以在几分钟内创建Windows MSI安装。 这也有Windows Vista的支持,也有助于创建其他语言的MSI包。
下载地址: http : //www.advancedinstaller.com/让我知道您用于将JAR转换为EXE的其他工具。
我会在你的情况下使用GCJ(GNU编译器的Java)。 它是Java的一个AOT(提前)编译器,就像GCC用于C一样。而不是解释代码,或者生成中间Java代码以便稍后由Java VM运行,它将生成机器代码。
几乎所有的Linux系统都可以通过各自的软件包管理器(如果可用)使用GCJ。 安装之后,应该将GCJ编译器添加到路径中,以便可以通过终端调用它。 如果您使用Windows,则可以通过Cygwin或MinGW下载并安装GCJ。
但是,我强烈建议您重写源代码,以便编译另一种语言,如C ++。 Java是一个可移植的解释型语言。 把它编译成机器码完全违背了语言的开发。
我使用launch4j
ANT命令:
<target name="jar" depends="compile, buildDLLs, copy"> <jar basedir="${java.bin.dir}" destfile="${build.dir}/Project.jar" manifest="META-INF/MANIFEST.MF" /> </target> <target name="exe" depends="jar"> <exec executable="cmd" dir="${launch4j.home}"> <arg line="/c launch4jc.exe ${basedir}/${launch4j.dir}/L4J_ProjectConfig.xml" /> </exec> </target>
我通常使用一个蝙蝠脚本。 这是我通常使用的:
@echo off set d=%~dp0 java -Xmx400m -cp %d%myapp.jar;%d%libs/mylib.jar my.main.Class %*
%〜dp0提取.bat所在的目录。 这使得蝙蝠能够找到罐子的位置,而不需要任何特殊的环境变量,也不需要设置PATH变量。
我们发现Jsmooth在Linux下能够很好的工作,并且很容易用ant来编写脚本。 你可能想要使用一个jar文件(也很容易用Linux下的ant脚本)来首先在一个jar文件中收集一个多文件应用程序。
我们主要需要将EXE轻松部署与“嘿,你需要Java版本X,去这里下载”的设施。
(但是你最需要的是标准Java中的“Runnable jar”/“Executable jar”工具)。
你可以做的是创建一个.bat文件来执行创建的.jar文件,检查是否存在JRE文件。
从米奇有用的链接( 来源 )
java -classpath myprogram.jar de.vogella.eclipse.ide.first.MyFirstClass
这可以用于你的批处理…
有一小部分这样做的程序… TowerJ是一个想到的(我会让你的谷歌它),但它需要大量的资金。
我发现这个主题最有用的参考是: http : //mindprod.com/jgloss/nativecompiler.html
它提到了一些其他产品,以及达到相同目的的替代品。