有个需求,需要将之前用jdk11+javaFX11开发好的桌面程序部署到linux系统中,测试项目是否可行性;
1:安装虚拟机:基于vmware workstations进行;
vmware安装很简单,相当于载windows系统安装一个软件而已;
2:安装CentOS7;
下载可以网上自行查找,这里推荐一个网址:
[ http://apache.apooloo.cn/
安装步骤:
[ https://blog.csdn.net/weixin_39791537/article/details/80834049](url)
3:安装jdk11;
卸载默认安装的openjdk
1》窗口命令:java -version 查看系统自带的OpenJDK版本信息。
2》窗口命令:rpm -qa | grep java 查询java相关文件
3》rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
需要在root权限使用,最后面带需要删除的文件名称
4》检查是否删除成功:java -version,未找到命令表示删除成功
5》在oracle官网下载jdk11,复制到虚拟机系统中;记得下载jdk-11.0.8_linux-x64_bin.tar.gz系统可用的;放到/usr/里随便创建一个文件夹,在该目录下用打开命令窗口解压:tar -zxvf jjdk-11.0.8_linux-x64_bin.tar.gz
这里复制文件,创建文件都没用命令,直接linux图形界面操作;命令不熟悉可以这样偷懒操作😂;
6》配置jdk环境变量
命令是:vim /etc/profile 在输入i进入编辑模式;
在文件后添加
export JAVA_HOME=/usr/local/src/JDK-11.0.8
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
(其中=/usr/local/src/就是你jdk解压的目录)
这里写入前面要顶格写,不要有空格
qw指令 写入并保存;
其实可以直接找到这个文件,该文件在etc/目录下叫profile,然后直接打开然后在后面添加环境变量,保存文件即可;
让环境变量生效指令:source /etc/profile
让环境变量永久生效:还是在该目录下,找到bashrc文件,在这后面添加刚才添加过的环境变量,然后保存;在执行生效指令即可;
7》输入java -version,检查是否配置成功;
4:安装javaFX11;
1》在[https://gluonhq.com/products/javafx](url)/下载:JavaFX Linux SDK;
2》同样直接复制到linux系统中,放到你觉得合适的目录然后使用tar -zxvf解压,但我们复制进来的文件是zip格式,使用unzip ***.zip指令解压,后面带zip文件名称,解压到当前目录即完成;
5:测试:
1》在idea中创建一个javafx11的案例;打成jar包复制到linux系统中;
2》命令窗口:java --module-path "/usr/etc/javafx-sdk-11.0.2/lib" --add-modules javafx.controls,javafx.fxml -jar untitled.jar
即可运行成功;一开始用java jar untitled.jar提示出错:
错误大概是JavaFX, OS X, Graphics Device initialization failed for : es2, sw
网上有解释:[https://stackoverflow.com/questions/53467499/javafx-os-x-graphics-device-initialization-failed-for-es2-sw
[ https://developer.aliyun.com/ask/279585?scm=20140722.184.2.173](url)
安装其中的方法:命令执行时要在VM参数中指定javafx相关包;
复制代码