我想将一个 .jar
文件转换成 .exe
文件,以便在微软系统中使用。是否有专门的转换程序可以使用?
如果针对 Mac 和 Linux 也有相应的转换程序,我也很感激能够提供相关建议。
我想将一个 .jar
文件转换成 .exe
文件,以便在微软系统中使用。是否有专门的转换程序可以使用?
如果针对 Mac 和 Linux 也有相应的转换程序,我也很感激能够提供相关建议。
Launch4j 可以同时在 Windows 和 Linux/Mac 上使用。但是,如果您正在运行 Linux/Mac,则可以将您的 jar 文件嵌入到一个 shell 脚本中,该脚本会自动启动它,因此您只需要一个可运行文件:
exestub.sh:
#!/bin/sh
MYSELF=`which "$0" 2>/dev/null`
[ $? -gt 0 -a -f "$0" ] && MYSELF="./$0"
JAVA_OPT=""
PROG_OPT=""
# Parse options to determine which ones are for Java and which ones are for the Program
while [ $# -gt 0 ] ; do
case $1 in
-Xm*) JAVA_OPT="$JAVA_OPT $1" ;;
-D*) JAVA_OPT="$JAVA_OPT $1" ;;
*) PROG_OPT="$PROG_OPT $1" ;;
esac
shift
done
exec java $JAVA_OPT -jar $MYSELF $PROG_OPT
然后,您可以从JAR文件创建可运行文件:$ cat exestub.sh myrunnablejar.jar > myrunnable
$ chmod +x myrunnable
它的工作方式与launch4j相同:因为jar文件具有zip格式,其头部位于文件末尾。您可以拥有任何想要的头部(二进制可执行文件或像这里一样的shell脚本)并运行java -jar <myexe>
,因为<myexe>
是一个有效的zip / jar文件。
JSmooth .exe包装器
JSmooth是一个Java可执行文件包装器。它为您的Java应用程序创建本地Windows启动器(标准.exe)。它能够自行查找任何已安装的Java VM,从而使Java部署更加顺畅和用户友好。当没有VM可用时,包装器可以自动下载和安装适当的JVM,或者仅显示消息或将用户重定向到网站。
JSmooth为您的Java应用程序提供各种包装器,每个包装器都有其自己的行为:选择您的口味!
下载: http://jsmooth.sourceforge.net/
JarToExe 1.8
JarToExe是一款将jar文件转换为exe文件的工具。 以下是其网站上描述的主要功能:
可以生成“控制台”、“Windows GUI”、“Windows服务”三种类型的.exe文件。
生成的.exe文件可以添加程序图标和版本信息。 生成的.exe文件可以加密和保护Java程序,程序运行时不会生成临时文件。
生成的.exe文件支持系统托盘图标。 生成的.exe文件提供记录系统事件日志支持。 生成的Windows服务.exe文件能够自行安装/卸载,并支持服务暂停/继续。
Executor
将您的Java应用程序打包成jar文件,然后Executor会将该jar转换为Windows .exe文件,与本机应用程序无异。只需双击.exe文件即可调用Java Runtime Environment并启动您的应用程序。
http://www.google.com/search?btnG=1&pws=0&q=java+executable+wrapper
如果您愿意,还可以尝试创建适当的批处理或脚本文件,其中包含单行:
java -jar MyJar.jar
我使用了Launch4J,它运行得非常顺利,
如果不能工作,请尝试测试运行按钮(绿色的播放按钮)。如果控制台下面显示“LinkageError”,则在“jvm-options”中键入--enable-preview
。它应该可以工作。
希望能对您有所帮助。
--icon
应用程序包的图标路径
--jlink-options
--bind-services
包括可用的服务提供者,其中包含应用程序的主模块和其所有依赖项。
示例
jpackage --type msi --app-version "2.0" --input . --dest . --main-jar .\JavaFXHelloWorld.jar --main-class com.example.javafxhelloworld.App --module-path "C:\Program Files\Java\javafx-jmods-17.0.1" --add-modules javafx.controls,javafx.fxml --win-shortcut --win-menu --icon "icon.ico" --name "My App" --jlink-options --bind-services
jpackage
只是将您的jar包打包成本地安装程序(即.msi
或.deb
等),但程序仍然需要使用java -jar ...
来运行。不过我还需要测试一下... - Matthieujava -jar
,只需要运行命令即可。 - Ahmed Saber--jlink-options --bind-services
,你可以在目标机器上运行你的 exe
或 msi
文件,而无需任何 Java 依赖。 - Ahmed Saber对于Windows系统,您可以使用以下方法将jar文件转换为exe文件: