2012-01-18 118 views
7

我有一個Maven項目,只是在xy軸上顯示一個圖形。我想將該圖更改爲Javafx 2.0線圖以顯示相同的數據。我嘗試使用FEST-javafx-maven插件,但我仍然無法編譯代碼;編譯器無法找到所有的javafx.xxx導入。如何將JavaFX 2.0類添加到現有的Maven項目?

任何幫助,將不勝感激。

回答

7

更新(2015年10月6日)

現代的JavaFX版本(附帶甲骨文的Java 8+)不需要任何額外的類路徑中使用JavaFX的。 JavaFX運行時位於Java用於編譯和執行的默認類路徑上。這意味着一個普通的maven pom.xml文件將不會構建JavaFX應用程序,而且不會有其他依賴關係。但是,如果您希望爲您的應用程序使用其他打包功能,例如將其部署爲self-contained application,那麼我建議您使用(第三方)JavaFX Maven plugin

以前的答案

在這個答案以下信息是現在大多陳舊過時。

我找到的fest maven插件(​​)的鏈接是用於構建JavaFX 1.x腳本項目的工具,它是與JavaFX 2.0完全不同且不兼容的野獸 - 我不確定是否存在支持JavaFX 2.0的fest maven插件的更新版本。

目前沒有官方支持來自Oracle的Maven,也沒有公開託管的Maven存儲庫中的JavaFX 2.0版本。

但是,我已經使用maven過去成功構建了JavaFX 2.0項目,使用jfxrt.jar的系統範圍依賴關係和(可選)從maven調用JavaFX ant任務。

如果通過JFXPanel將圖形嵌入到現有的Swing應用程序中,則不需要使用JavaFX ant任務。從JavaFX運行時添加jfxrt.jar作爲系統依賴項,或手動將其安裝到Maven倉庫中以使用非系統作用域依賴項。

手動安裝所需的JavaFX 2.0運行時jar命令的一個例子是:

mvn install:install-file -Dfile="C:\Program Files\Oracle\JavaFX 2.1.0 SDK\rt\lib\jfxrt.jar" -DgroupId=com.oracle.javafx -DartifactId=javafx -Dversion=2.1 -Dpackaging=jar 

運行上面的命令後,加入依賴於jfxrt.jar文件到您的Maven POM文件和你的項目彙編應該可以解決所有的JavaFX API參考:

<dependency> 
    <groupId>com.oracle.javafx</groupId> 
    <artifactId>javafx</artifactId> 
    <version>2.1</version> 
</dependency> 

如果擴展JavaFX應用程序類,你想你的應用程序打包以便通過Webstart的,瀏覽器部署嵌入或作爲一個JavaFX安裝意識到點擊罐子,那麼你應該調整您的pom.xml文件以執行相關的JavaFX 2.0 ant任務 - http://code.google.com/p/willow-browser/source/browse/pom.xml演示了這樣的適應。

這些線程討論JavaFX 2。0 Maven支持,並提供更多的背景資料和樣品:

+0

非常感謝您的幫助。 – 2012-01-20 15:56:11

+0

我真正想要做的是用JFX2.0線形圖替換現有的帶有圖形的JPanel。我可以不重繪整個JFrame等? – 2012-01-20 15:58:55

+0

是的,只需用JFXPanel替換JPanel,請參閱此處以獲取documentation => http://docs.oracle.com/javafx/2.0/api/javafx/embed/swing/JFXPanel.html – jewelsea 2012-01-20 19:52:19

3

我有同樣的問題,這裏是我的解決方案:

如果使用Java 7u7(JavaFX是集成到jdk/jre中):

<dependency> 
     <groupId>javafx</groupId> 
     <artifactId>javafx</artifactId> 
     <version>2.1</version> 
     <scope>system</scope> 
     <systemPath>${java.home}/lib/jfxrt.jar</systemPath> 
    </dependency> 

For以前版本的java:

<dependency> 
     <groupId>javafx</groupId> 
     <artifactId>javafx</artifactId> 
     <version>2.1</version> 
     <scope>system</scope> 
     <systemPath>${env.JAVAFX_HOME}\rt\lib\jfxrt.jar</systemPath> 
    </dependency> 

而且您必須將系統變量JAVAFX_HOME設置爲JavaFx的主目錄。

0

您可以試試JavaFX Maven plugin。這需要將javafx添加到類路徑以及構建JavaFX應用程序和創建Windows/Mac/Linux可執行文件,以及雙擊JAR和JNLP文件。

0

使用JDK 1.7,您必須執行以下mvn目標。

mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath 

這個命令將改變你的JRE的類路徑和jfxrt.jar複製到JAVA_HOME \ lib \ ext目錄。

這裏採取額外的外觀進一步的信息: JavaFX Maven Plugin

在你的POM文件,你必須添加以下的依賴配置。

 <dependency> 
     <groupId>javafx</groupId> 
     <artifactId>jfxrt</artifactId> 
     <version>2.2</version> 
     <!-- <version>${javafx.min.version}</version> --> 
     <scope>system</scope> 
     <systemPath>${java.home}/lib/ext/jfxrt.jar</systemPath> 
    </dependency> 
相關問題