您可以创建一个。将执行。创建 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:
alt text
(资料来源: 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 文件的工具。 以下是其网站所描述的主要特点:

  • 可以生成“控制台”、“ Windows GUI”、“ Windows 服务”三种类型的 exe 文件。
  • 生成的 exe 文件可以添加程序图标和版本信息。
  • 生成的 exe 文件可以加密和保护 java 程序,程序运行时不会生成临时文件。
  • 生成的 exe 文件提供对系统托盘图标的支持。
  • 生成的 exe 文件提供对记录系统事件日志的支持。
  • 生成的 windows service exe 文件可以自行安装/卸载,并支持服务暂停/继续。
  • 新发布的 x64版本,可以创建64位执行器
  • 同时支持向导模式和命令行模式

下载: 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”工具)。