可能的复制品: 如何为 Java 程序创建. exe
我刚用 Eclipse 编写了一个简单的程序,我想把它编译成一个可执行文件,但似乎就是找不到如何做到这一点。
您可以创建一个。将执行。创建 jar 文件,检查是否存在 JRE。
来自 Mitch 的有用链接(来源)
java -classpath myprogram.jar de.vogella.eclipse.ide.first.MyFirstClass
这可以用在你的批次..。
有一小部分程序可以做到这一点... TowerJ 是我想到的一个(我会让你谷歌一下) ,但它需要大量的资金。
我找到的关于这个主题最有用的参考资料是: http://mindprod.com/jgloss/nativecompiler.html
它提到了一些其他的产品,以及达到同样目的的替代品。
我通常使用一个 bat 脚本:
@echo off set d=%~dp0 java -Xmx400m -cp "%d%myapp.jar;%d%libs/mylib.jar" my.main.Class %*
% ~ dp0解压缩。找到蝙蝠。这允许蝙蝠找到罐子的位置,而不需要任何特殊的环境变量或 PATH 变量的设置。
编辑: 在类路径中添加引号。否则,正如乔伊所说,“空格可以发生有趣的事情”
我会在你的情况下使用 gcJ (GCJ)。它是 Java 的 AOT (提前)编译器,就像 GCC 是 C 编译器一样,它不解释代码,或者生成中间的 Java 代码以供 Java VM 稍后运行,而是生成机器代码。
GCJ 可以在几乎任何 Linux 系统上通过其各自的包管理器获得(如果可用的话)。安装之后,应该将 GCJ 编译器添加到路径中,以便可以通过终端调用它。如果你使用 Windows,你可以通过 Cygwin 或 MinGW 下载并安装 GCJ。
但是,我强烈建议您将源代码重写为另一种需要编译的语言,比如 C + + 。Java 应该是一个可移植的直译语言。把它编译成机器码完全违背了语言的初衷。
您可以通过以下方式将.jar 文件转换为.exe: (资料来源: Viralpatel.net) 1-JSmooth. exe 包装器: JSmooth 是 Java 可执行包装器。它创建本机 Windows 启动程序(标准。(exe)用于 Java 应用程序。它使得 Java 部署更加流畅和用户友好,因为它能够自己找到任何已安装的 JavaVM。当没有可用的 VM 时,包装器可以自动下载并安装合适的 JVM,或者只是显示一条消息或者将用户重定向到一个网站。
JSmooth 为您的 Java 应用程序提供了各种各样的包装器,每个包装器都有自己的特性: 选择您的风味!
下载: http://jsmooth.sourceforge.net/
2-JarToExe 1.8 Jar2Exe 是一个将 jar 文件转换为 exe 文件的工具。 以下是其网站所描述的主要特点:
下载: http://www.brothersoft.com/jartoexe-75019.html
3-执行者 将 Java 应用程序打包为 jar,Execator 将把 jar 转换为 Windows exe 文件,与本机应用程序没有什么区别。只需双击 exe 文件就可以调用 JRE 并启动应用程序。
下载: http://mpowers.net/executor/
编辑: 上面的链接中断了,但是这里是互联网档案馆的页面(带有工作下载)
4-高级安装程序 高级安装程序允许您在几分钟内创建 WindowsMSI 安装。这也支持 WindowsVista,还有助于用其他语言创建 MSI 包。 下载: http://www.advancedinstaller.com/ 让我知道您用来将 JAR 转换为 EXE 的其他工具。
我用 Launch4j
蚂蚁指令:
<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>
我们已经发现,在 Linux 下使用 ant,Jooth 工作得很好,而且很容易编写脚本。您可能希望首先使用 one-jar (在 Linux 下也很容易编写 Ant 脚本)来收集单个 jar 中的多文件应用程序。
我们主要需要易于部署的 EXE 结合“嘿,你需要 Java 版本 X,去这里下载”的设施。
(但是您最可能需要的是标准 Java 中的“ Runnable jar”/“ Execablejar”工具)。