【IntelliJ IDEA 2019.2】创建编译运行Java FX工程
写第一个helloworld工程
1.官网(https://openjfx.io/)下载javaFX包(从SDK11开始就必须单独下载了, 当前用的是SDK13).
2.创建一个FX工程。
3.配置FX.
参考: https://blog.csdn.net/qq_41190856/article/details/90726800
打开
加入jar
add jar
添加成功后就可以看到 External lib 里多了一个包:
此时编译已经可以通过了,但是还不能运行,还要配置VMoption
单击run,EditConfiguration,修改Vm options
填入参数
--module-path
"C:\Users\Administrator\Downloads\openjfx-13.0.1_windows-x64_bin-sdk\javafx-sdk-13.0.1\lib"
--add-modules=javafx.controls,javafx.fxml
到这一步,就可以正常运行啦,运行结果如下(这是新建工程后自带的模板,没有修改过源码):
可能出现的问题:Error: Module not specified
解决方法:
那就选一个Module即可。
生成jar可执行文件
1.在工程上右键,选择Open Module Settings
2.选择Artifacts,这个是要创建工件,所谓工件也就是产出、产品的意思。
3.选择Module和Main Class.
点选 jar项后,下边就会出现设置 Main Class 的选项。
填好后如下:
4.确定,回到IDE主界面,在build中选择build artifacts.
但编译时提示一个错误;
解决方法:
原因是FX是 11 的版本,而我所用的JDK是13的版本。
安装包:JDK11(https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html)
安装好JDK的后续步骤:
1.点击New --> JDK
2.在弹出的框中选择 jdk-11.0.9
3.最后要确定,以下两个地方都是 jdk11
最后,发现问题还是存在。
还要把库也改成11的。
无解的问题:
参考: https://blog.csdn.net/HjhBlog/article/details/100170544
Error:Java FX Packager: Can't build artifact - fx:deploy is not available in this JDK
在github中有这个问题:https://github.com/openjfx/openjfx-docs/issues/90
目前没有找到解决方案。打算接下来使用jpackage打包,或者其他的工具
尝试装jdk10
因为从jdk8到jdk10,javaFX是可以打包成jar包的,并且jdk是包含FX,无需额外导入。
jdk下载地址:http://jdk.java.net/archive/
下载完,打开一看,是这样的目录结构,如下图,那么,该怎么安装呢?
把文件复制到安装目录下即可,如下图。
装好jdk10后还不行,找不到对应的javaFX10版本,当然,github上有源码,但如果有再编译,就算了。
尝试装jdk8
下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
由于jdk8是长期稳定版,很容易找到exe的安转文件。安装方便快捷,直接一路next就行。
装好后,果然,不需要额外的javaFX库了,工程默认配置就可以直接运行。
易忽略的一步:生成jar时还是要配置一下 Main Class 的。
生成Jar时,虽然可以顺利生成jar文件,但是,还是跑不起来,命令为 java JavaFXApp.jar 。提示错误为:
但是换个命令是可以直接跑起来的,如下:
只是双击jar文件,不能直接打开。有点遗憾,记得其它的jar文件,都是可以直接双击打开的,难道是因为版本太底的缘故吗?
改成双击打开jar文件
win+R 输入 regedit 打开注册表编辑器。
修改路径: “HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command” 的值。
原来是 "C:\Program Files\Java\jre1.8.0_271\bin\java.exe" "%1"
改成 "C:\Program Files\Java\jre1.8.0_271\bin\java.exe" -jar "%1" 也就是在中间加入一个 -jar 的参数。
再把打开方式也改成这个软件:
最后,确实是可以双击打开了,但是,美中不足的是带了个黑框打开的,如下:
去掉黑框的方法
Java跨平台的特性使Java越来越受开发人员的欢迎,但也往往会听到不少的抱怨:用Java开发的图形用户窗口界面每次在启动的时候都会跳出一个控制台窗口,这个控制台窗口让本来非常棒的界面失色不少。怎么能够让通过Java开发的GUI程序不弹出Java的控制台窗口呢?
其实现在很多流行的开发环境例如JBuilder、Eclipse都是使用纯Java开发的集成环境。这些集成环境启动的时候并不会打开一个命令窗口,因为它使用了JNI(Java Native Interface)的技术。
通过这种技术,开发人员不一定要用命令行来启动Java程序,可以通过编写一个本地GUI程序直接启动Java程序,这样就可避免另外打开一个命令窗口,让开发的Java程序更加专业
路径请不要有中文
因为当文件夹路径中有中文时,虽然仍然可以生成正确的jar文件,但是,在生成的过程中会提示一个错误:
所以,尽量使用英文路径吧。
打开jar可执行文件的快捷方式
在桌面建一个批处理文件就行。
CHCP 65001
d:
cd "D:/logs/l2/V316/software_pc/PcObdSimulatorJava/out/artifacts/PcObdSimulatorJava"
java -jar PcObdSimulatorJava.jar