通过IDEA将Javafx (14后版本) 项目打包成.jar文件并生成exe丨踩坑速记
【531吐槽】地球上怎么会有两个人在一天内写完全一样的内容连主题和网站都一样啊,为什么他没有早发我没有早看到啊,崩溃了(这个blog)
打包到能运行
先编写main方法
原来的application不能直接打包,对于PageApplication
,要编写如下额外的main方法
public class APP {
public static void main(String[] args) {
PageApplication.main(args);
}
}
开打
右上角设置 → project structure → artifact → add - JAR - From module with dependencies
接下来进入下图界面,点击浏览,找到刚刚边写的APP
Class, 注意最下面那个目录一定要改成根目录,不然会导致之后双击.jar
无法运行
构建项目和工件,第一阶段完成
运行后发现文件路径要改
这个思路倒是简单,但是我们原来全都是src/demo/... 这种形式的,移到根目录再弄就方便多了
打包为 exe
参考 了一点,他似乎确凿写漏了蛮多东西
毕竟 jar 要 java 环境,如果能 exe 的话还是最好不过了
先根据自己的情况下载 openjre(现在叫 Adoptium 似乎),当然你也可以下载jdk,我的理解是一个是生产环境一个是开发环境,jre要小很多比较适合我,清华镜像站
这里使用 packr( https://github.com/libgdx/packr) ,这里下载packr-all-4.0.0.jar
完事把这几个东西放同一个目录下,编写 json 文件,文件名和你想要的 exe 文件的命名一样
json 内字段如下,注意:
jdk
需要修改成你下载的zip
的文件名executable
的值和json
文件名一样都设为你想要的最终exe
的文件名mainclass
设为之前设置的、程序入口类的名字,注意保留包
{
"platform": "windows64",
"jdk": "./OpenJDK18U-jdk_x64_windows_hotspot_18.0.1_10.zip",
"executable": "demo1",
"classpath": [
"demo1.jar"
],
"mainclass": "com.example.demo1.APP",
"vmargs": [
"Xms32m","Xmx512m"
],
"minimizejre": "soft",
"output": "out-windows64"
}
在当前页面打开cmd
,输入 java -jar packr-all-4.0.0.jar demo1.json
,其中packr-all-4.0.0.jar
和 demo1.json
都替换成你自己的值
在生成的文件夹内双击.exe文件,搞定!