使用JavaFX
11和Maven
并仅创建此依赖项来创建简单的HelloWorld应用程序:
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
</dependencies>
这将产生此依赖关系树:
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ javafx-module-test ---
[INFO] ch.sahits.test:javafx-module-test:jar:1.0-SNAPSHOT
[INFO] \- org.openjfx:javafx-controls:jar:11:compile
[INFO] +- org.openjfx:javafx-controls:jar:linux:11:compile
[INFO] \- org.openjfx:javafx-graphics:jar:11:compile
[INFO] +- org.openjfx:javafx-graphics:jar:linux:11:compile
[INFO] \- org.openjfx:javafx-base:jar:11:compile
[INFO] \- org.openjfx:javafx-base:jar:linux:11:compile
从上面的输出中可以猜到,我在Linux机器上运行此程序,这使我对创建可移植到其他OS的可执行jar文件感到不满意。因此,我继续使用Assembly插件创建了一个jar文件: 如您在罐子内容的上图中所见,其中包含本机库。对于Windows,可能是一些dll。
我们如何为可在任何地方运行的JavaFX应用程序创建可执行jar文件?
我可以想象的一种方法是要求将OpenJFX运行时安装在目标计算机上,这样就不必将其捆绑在jar中,但这是可以避免的,因为它对用户非常不友好。 / p>