我正在寻找一种方法来构建我的Java或JavaFx应用程序,以便我有一个单一的可执行文件,运行时无需在运行Linux的目标系统上安装Java运行时(如Windows上的.exe)
通常,Java应用程序被打包成jar文件,可以像这样运行
java -jar <file-name>.jar
这需要我们事先安装Java JRE。
我正在寻找一个解决方案来打包我的Java应用程序,这样它就可以在不需要Java JRE的目标机器上执行。
您可以使用GraalVM将Java应用程序编译为本机平台可执行文件。
首先按照以下步骤安装GraalVM: https://www.graalvm.org/docs/getting-started/#install-graalvm
安装native-image插件:gu install native-image
使用javac正常编译Java应用程序:javac YourApp.java
编译为本机可执行文件:native-image YourApp
执行本机可执行文件:./YourApp
正如@ law在评论中提到的对于Java 14+,这是最好的解决方案
在内部使用jlink
命令并支持Mac, Windows和Linux
上面提到了官方的基于java的解决方案但它的高度推荐使用GraalVM如果你想要额外的性能和更好的微服务方法
安装步骤如下@Kevin Hooke的回答
我认为' ' ' ' jlink ' ' ' ' ' '在旧的Java版本中也是可用的如果有人有使用旧版本jlink
的经验,请在下面评论