2012-09-13 91 views

回答

11

確保/jre/lib/jfxrt.jar位於編譯路徑中。

例如,對於Win7上64位jdk7u6版,jfxrt.jar位於:

C:\Program Files\Java\jdk1.7.0_06\jre\lib\jfxrt.jar 

jfxrt.jar被停止的Java運行路徑對目的爲jdk1.7.0_06直至進一步JavaFX和其他Java基礎架構之間的測試已經完成。這意味着非JavaFX程序不可能受可能由JavaFX引起的可能的兼容性問題的影響。迄今爲止,我從未遇到任何兼容性問題 - 我相信這只是Oracle在這方面採取的謹慎舉措。

在將來的版本中jfxrt.jar應該被添加到默認的編譯和運行時類路徑Java和下面的一些信息,應該是無關的。您可以跟蹤request to add jfxrt.jar to the default java runtime

編譯和命令行運行一個JavaFX程序如下

例子是名爲javafxsamples.AudioPlaylist

如果從一個命令行編譯JavaFX應用程序類,編譯:

javac -cp ".;C:\Program Files\Java\jdk1.7.0_06\jre\lib\jfxrt.jar" javafxsamples/AudioPlaylist.java 

要從命令行運行,您可以使用:

java -cp ".;C:\Program Files\Java\jdk1.7.0_06\jre\lib\jfxrt.jar" javafxsamples.AudioPlaylist 

雖然,建議您使用javafxpackager打包應用程序,而不是手動將jfxrt.jar添加到類路徑(javafxpackager打包的應用程序將嵌入一個啓動程序,該啓動程序可找到jfxrt.jar並將其添加到類路徑中) 。

javafxpackager -createjar -nocss2bin -appclass javafxsamples.AudioPlaylist -srcdir . -outfile AudioPlaylist.jar 

在此之後,你可以在不需要指定classpath中的jfxrt.jar位置運行的應用程序:

java -jar AudioPlaylist.jar 

編譯和運行使用的IDE

NetBeans的一個JavaFX程序

如果您使用的是NetBeans 7.2+,你可以創建一個JavaFX項目類型,它會自動找到JavaFX jfxrt.jar,並將其設置爲項目的類路徑,當您將jdk1.7.0_07設置爲platform時。

的Eclipse

如果您正在使用e(fx)clipse確保您使用的是最新版本(0.0.14+),這是功能檢測的JavaFX更好的設施。

想法

IntelliJ IDEA的11.1。3會自動將jre lib目錄下的所有文件添加到它的項目類路徑中,所以你不應該得到它的編譯錯誤。請注意,在這方面,Idea的行爲是錯誤的,它不應該真的這樣做,但它最終會導致能夠從想法編譯和運行JavaFX類的預期行爲。

建築使用maven

  • 充分利用jfxrt.jar你Maven項目得到它的路徑上的系統依賴一個JavaFX程序。
  • 使用maven antrunner執行用於部署打包的javafx ant任務。

在此maven project中提供了使用maven打包JavaFX的示例。


即使您使用您的構建一個IDE或Maven,但仍建議,您使用的JavaFX Ant任務或的javafxpackager工具打包交付的應用程序,因爲這應該爲您的應用提供最強大的部署解決方案。