![](/img/trans.png)
[英]Create JavaFX self-contained application (with custom JDK) in Eclipse
[英]What is the best way to deploy JavaFX application, create JAR and self-contained applications and native installers
我正在使用 IntelliJ IDEA,並且我的 JavaFX 應用程序已准備好部署。 問題是當我生成 JAR 文件時,它不會運行,當我在命令行中運行它時,我得到一個異常 FXMLLoadException,盡管該項目在我的 IDE 中運行良好。
Ant任務以錯誤結束,構建15分鍾后,我真的不明白到底是什么問題。
所以我的問題是以正確的方式部署 JavaFX 應用程序的正確步驟是什么,歡迎任何教程或指南。
Java 應用程序可以以多種方式打包。 請瀏覽Java Packaging Overview以找到有關它的所有信息。 其中一種包裝是self-contained Java application
。
有不同的方法來創建這些包:
javapackager
工具自包含應用程序是應用程序打包方式之一,並且是特定於平台的。 該捆綁包包含:
可以在此處找到可用捆綁包的列表。
讓我們看看我們可以使用的各種工具以及如何使用它們:
JavaPackager 工具
JavaPackager Tool是最基本的工具,可幫助您編譯、打包、簽名和部署 Java(FX) 應用程序,而無需編寫任何額外的腳本。 javapackager.jar
文件位於 JDK 安裝的 bin 目錄中。
可以與它一起使用的命令列表可在此處獲得。
JavaFX Ant 任務
JavaFX Ant Tasks通過為您的項目創建一個build.xml
文件來幫助您打包您的應用程序。
可以在此處找到一組關於如何為您的項目使用 ant 腳本的示例。
可用於它的命令列表可在此處獲得。
JavaFX Maven 插件
JavaFX Maven 插件利用將 java 應用程序打包到 maven 平台的用法。 您可以通過向項目添加插件來使用它來打包基於 maven 的 java 應用程序。
這個插件恕我直言,如果三個中easiest
使用的話。 它是一個寫得很好、易於理解的工具,並且有大量的文檔。
JavaFX Gradle 插件
JavaFX Gradle Plugin也是來自 maven 插件的作者。 它具有 maven 插件的所有功能,但對於 Gradle :)
延伸閱讀:
如果您使用 Maven,另一種非常聰明的方法是使用maven-shade-plugin
( link )。 它構建了一個包含所有依賴項的大胖 jar,您可以在其中直接執行,而無需做任何進一步的事情。 您可以將它與javafx-maven-plugin
結合使用。 我也嘗試了不同的方法並玩了很長時間,這個解決方案是唯一真正有效的解決方案。 此外,它很容易設置。
這是您必須添加到 pom.xml 的內容:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<configuration>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>your.package.name.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.8.3</version>
<configuration>
<mainClass>your.package.name.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
將mainClass
中的包名稱更改為 shade 和 javaFx 插件,就完成了。 現在您可以像往常一樣使用mvn package
構建您的應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.