为什么说是攻略呢,打包运行一个可执行文件不是点点鼠标的事吗?因为我习惯了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
以上便是本文主要内容,如有更好办法,欢迎指正提供~