Linux运行JavaFX程序
0
Windows上面直接使用Maven的依赖就可以直接运行,但是Linux上面却不行。
下载JavaFX运行环境:https://gluonhq.com/products/javafx/
配置环境变量:
export JAVAFX=/home/javafx-sdk-11.0.2/lib
运行启动命令:
java --module-path $JAVAFX --add-modules javafx.fxml,javafx.controls -jar snail.jar
后来我发现了一个更好的解决方案,就是pom.xml
的配置也可以解决。
在Window上面只需要配置fxml/controls
就可以了,其他的会自动引入:
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${javafx.version}</version>
<classifier>${os.name}</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
<classifier>${os.name}</classifier>
</dependency>
Linux打包时把其他的都显示声明就可以了:
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${javafx.version}</version>
<classifier>${os.name}</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
<classifier>${os.name}</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-base</artifactId>
<version>${javafx.version}</version>
<classifier>${os.name}</classifier>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>${javafx.version}</version>
<classifier>${os.name}</classifier>
</dependency>
其实这个问题主要是我在Win上面打包的问题,默认使用的是打包系统的软件版本。
也可以直接使用Maven命令指定系统:
mvn clean package -DskipTests "-Djavafx.platform=linux"