通过IDEA将Javafx (14后版本) 项目打包成.jar文件并生成exe丨踩坑速记

Posted 浪子尘晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过IDEA将Javafx (14后版本) 项目打包成.jar文件并生成exe丨踩坑速记相关的知识,希望对你有一定的参考价值。

打包到能运行

先编写main方法

原来的application不能直接打包,对于PageApplication,要编写如下额外的main方法

package net.fygk.main;

import com.sf.javafxtest.HelloApplication;

public class MainClass 
    public static void main(String[] args) 
        HelloApplication.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( GitHub - libgdx/packr: Packages your JAR, assets and a JVM for distribution on Windows, Linux and Mac OS X) ,这里下载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"
JSON 复制 全屏

在当前页面打开cmd ,输入 java -jar packr-all-4.0.0.jar demo1.json,其中packr-all-4.0.0.jar 和 demo1.json 都替换成你自己的值

在生成的文件夹内双击.exe文件,搞定!

以上是关于通过IDEA将Javafx (14后版本) 项目打包成.jar文件并生成exe丨踩坑速记的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IntelliJ IDEA 中创建 JavaFX 模块

idea springboot项目打jar包部署成功,却无法访问

将 JavaFX 与 Intellij IDEA 结合使用

JavaFX 不存在使用 Java 9 和 Intellij Idea

如何在 IntelliJ IDEA 中创建 JavaFX Maven 项目?

IntelliJ IDEA创建JavaFX项目