基于IntelliJ IDEA - Gradle - JavaFX 的 jar 包发布和命令行运行全攻略

为什么说是攻略呢,打包运行一个可执行文件不是点点鼠标的事吗?因为我习惯了Visual Studio C++ 编程,用了一下 IntelliJ IDEA ,感觉也不过如此,没有传说中的那么神乎其神,比如 JavaFX 工程导出 Jar 包并运行就比较麻烦。

图像处理方面, Java因为他跨平台的特性,配合 jni 调用 C++ 算法,还是很有前景的,所以如果有同事看到我写这个博文不要觉得不务正业。

1.用IntelliJ IDEA建立一个javafx工程,并打包jar

建立工程:

File => New => Project,配置如下图,jdk选的是openjdk-17,点击Next,

把FormsFX勾上,点击Finish,然后等待一会,IDEA要下载一些依赖,配置一些东西,等待构建完成。

配置Artifacts

构建完成以后,File=>Project Structure=>Project Settings=>Artifacts,点击加号,如下图选择

 

 此时第一个坑来了,默认生成的路径包含 "\main\java",要把红框里的删掉,如图,点击OK

不删掉的话,之后运行 jar 包的时候会报一些错,具体这里不展示了。 

接着按图示点击,添加一个路径。这里是第二个坑,不添加的话,之后运行 jar 包的时候会报一些错,具体这里不展示了。 

点击OK

 

 点击Apply,点击OK。

 构建Artifacts

构建Artifacts其实就是生成jar包,按图示点击,等待构建完成

 构建完成后目录如下图所示,出现了demo.jar,就是构建完了。

 2.配置jar包运行参数

右键点击demo.jar,在弹出菜单中点击 Run demo.jar,会报一下错误:

错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序

也就是缺运行时包,可以通过配置运行时命令来解决。如下图点击

出现如下界面,其中的VM options是需要配置的地方,我的配置如下

--module-path "Y:\openjfx-17.0.2_windows-x64_bin-sdk\javafx-sdk-17.0.2\lib" --add-modules javafx.controls,javafx.fxml

 这里需要下载个javafx SDK(目前只知道这样,有更好的办法还请指出),地址https://download2.gluonhq.com/openjfx/18/openjfx-18_windows-x86_bin-sdk.zip

下载完成后,把 "Y:\openjfx-17.0.2_windows-x64_bin-sdk\javafx-sdk-17.0.2\lib"替换为你的路径,点击Apply,点击OK。这时再右键点击demo.jar,在弹出菜单中点击 Run demo.jar,就能运行了:

3.命令行运行 

C:\Users\你的用户名\.jdks\openjdk-17.0.2\bin\java.exe --module-path Y:\openjfx-17.0.2_windows-x64_bin-sdk\javafx-sdk-17.0.2\lib --add-modules javafx.controls,javafx.fxml -jar C:\Users\zhengxiao\IdeaProjects\demo\out\artifacts\demo_jar\demo.jar

 观察以上命令,其实就是在 java -jar demo.jar 中增加了 --module-path Y:\openjfx-17.0.2_windows-x64_bin-sdk\javafx-sdk-17.0.2\lib --add-modules javafx.controls,javafx.fxml

即在 demo.jar 同级目录,运行以下命令即可

java --module-path Y:\openjfx-17.0.2_windows-x64_bin-sdk\javafx-sdk-17.0.2\lib --add-modules javafx.controls,javafx.fxml -jar demo.jar

以上便是本文主要内容,如有更好办法,欢迎指正提供~

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值