如何将Java程序转换为.exe文件?
如果我有Java源文件(*.Java)或类文件(*.class),如何将其转换为.exe文件 我还需要一个程序的安装程序。IMHO似乎做得很好 更新:GCJ已死亡。它来自2016年的GCC项目。甚至在那之前,它实际上已经被废弃了七年,而且在任何情况下,它都可以作为一种可行的替代Java实现 去找另一个Java AOT编译器 可以将Java源代码编译为本机代码,包括Windows可执行文件 尽管GCJ并不支持Java中的所有内容,尤其是GUI组件(请参阅 委员会的问题)。我没有太多使用GCJ,但从我对控制台应用程序所做的有限测试来看,它似乎很好 使用GCJ创建独立可执行文件的一个缺点是,生成的EXE文件的大小可能相当大。有一次,我在GCJ中编译了一个简单的控制台应用程序,结果是一个大约1MB的可执行文件。(可能有一些方法我不知道。另一个选择是可执行压缩程序。) 就开源安装程序而言,是一个可编写脚本的安装程序。如果您感到好奇,下面将介绍如何检测JRE的存在,并在未安装所需的JRE时自动安装它。(只是想让你知道,我以前从未使用过NSIS。) 有关使用NSIS安装Java应用程序的详细信息,请查看问题“” Java Packager工具编译、打包和准备Java和JavaFX应用程序以供分发。javapackager命令是命令行版本 –Oracle的文档 JDK附带了如何将Java程序转换为.exe文件?,java,installation,exe,Java,Installation,Exe,如果我有Java源文件(*.Java)或类文件(*.class),如何将其转换为.exe文件 我还需要一个程序的安装程序。IMHO似乎做得很好 更新:GCJ已死亡。它来自2016年的GCC项目。甚至在那之前,它实际上已经被废弃了七年,而且在任何情况下,它都可以作为一种可行的替代Java实现 去找另一个Java AOT编译器 可以将Java源代码编译为本机代码,包括Windows可执行文件 尽管GCJ并不支持Java中的所有内容,尤其是GUI组件(请参阅 委员会的问题)。我没有太多使用GCJ,但从
javapackager
实用程序。它可以生成带有-native exe
标志的.exe文件,以及其他许多功能
WinRun4j是windows的java启动器。它是javaw.exe的替代品,具有以下优点:
- 使用INI文件指定类路径、主类、vm参数和程序参数
- 任务管理器中显示的自定义可执行文件名称
- 额外的JVM参数可以更灵活地使用内存
- 自定义图标的内置图标替换程序
- [更多要点如下]
更多信息 Excelsior的文章是关于这个主题的一个极好的信息来源 另见附文“” Launch4j是一个跨平台工具,用于包装轻量级Windows本机可执行文件中作为JAR分发的Java应用程序。可执行文件可以配置为搜索特定JRE版本或使用捆绑版本,还可以设置运行时选项,如初始/最大堆大小。包装器还通过应用程序图标、本机预JRE初始屏幕、自定义进程名称和Java下载页面(如果找不到合适的JRE)提供更好的用户体验 –启动4J的网站 我们正在使用为windows或unix环境构建安装程序 它可以很容易地定制,直到您想要为标准对话无法完成的特殊操作编写脚本为止。但即使我们用它来设置windows服务,我们也只使用标准组件
- 安装程序+启动器
- windows或unix
- 可在Java中编写脚本
- 蚂蚁任务
- 大量可定制的标准面板和动作
- 可选地包括或下载JRE
- 也可以启动windows服务
- 多种语言
package exe;
public class Main {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("args["+i+"]="+args[i]);
}
}
}
mkdir jpackage.input\jars tmp
javac -d tmp src\exe\Main.java
pushd tmp && jar cvf ..\jpackage.input\jars\myapp.jar . && popd
java -cp jpackage.input\jars\myapp.jar exe.Main X Y Z
set jlink.modules=java.base
jlink --add-modules %jlink.modules% --strip-debug --no-man-pages --no-header-files --compress=1 --output jpackage.jre
set appver=%date:~6,2%.%date:~3,2%.%date:~0,2%%time:~0,2%
jpackage --win-console --input jpackage.input --runtime-image jpackage.jre --app-version %appver% --type exe --name "MyApp" --dest jpackage.dest --java-options "-XshowSettings:properties" --main-jar jars\myapp.jar --main-class exe.Main
jpackage.dest\MyApp-%appver%.exe
"C:\Program Files\MyApp\MyApp.exe" ONE 2 THREE
... Prints system properties ...
args[0]=ONE
args[1]=2
args[2]=THREE