2014-04-13 129 views
1

我正在使用Intelij,並且在打包Java應用程序時遇到了一些麻煩。Intellij包JavaFx應用程序

我正在使用工件來打包我的應用程序。有一個選項可以創建Jar包或JavaFx包。如果我使用JavaFx工件,則需要指定Application類才能啓動。我的軟件包使用標準的java main(String[] args)類型啓動,因爲它也可以嚴格從命令行(無UI)運行,所以這個選項對我來說不起作用。

如果我不是創造一個罐子,我main方法顯然已經不知道是什麼的Application類是:Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application

什麼神奇的是我完全丟失?任何在正確的方向碰撞將非常感激。

回答

2

如果您有此例外,那是因爲您的類路徑中沒有JavaFX運行時。在您的JavaFX 2.2安裝目錄中,有一個名爲rt的文件夾。在文件夾中,你有jfxrt.jar和一些本地庫。

如果您想運行您的JavaFX應用程序,則jfxrt.jar必須包含在類路徑中。你沒有它,這就是爲什麼Java找不到javafx.application.Application類。

例如(在Windows中): C:\ Program Files文件\ ORACLE \的JavaFX 2.2 SDK \ RT C:\ Program Files文件\ ORACLE \的JavaFX 2.2 SDK \ RT \ BIN * .DLL C:\ Program Files文件\ ORACLE \的JavaFX 2.2 SDK \ RT \ LIB \ jfxrt.jar

如果您使用Oracle的Java 8,然後jfxrt.jar會自動在運行時類路徑,所以你不需要手動添加jfxrt.jar到classpath的Java 8.

+0

感謝您的正確回答 – Skinner927