2016-08-02 33 views
0

我想爲使用depency injection(Spring框架庫)來管理多個FXMl文件和多個FXMLDocumentControllers的JavaFX應用程序構建一個可運行jar。 但是,在執行jar時會報告「ClassNotFoundException:org.springframework.context.annotation.AnnotationConfigApplicationContext」。 然而,我已經將NetBeans項目中的Spring庫(3.2.7)添加到了NetBeans中,並且它在IDE中運行良好。 我該如何保證,上面的類也可以在jar中使用?JavaFX Spring ClassNotFoundException:org.springframework.context.annotation.AnnotationConfigApplicationContext

jar execution error listing

+0

既然你使用maven,你能分享的依賴定義春天上下文您已經添加到您的pom.xml?標籤被添加到問題中,但我必須問:您是否使用maven打包您的jar包? –

+0

@ deepdownunder2222你是對的。我想知道如果也許我必須使用Maven來解決這個問題?所以我添加了標籤。在這種情況下使用Maven是否有義務,以及我需要在pom.xml中的什麼地方寫入什麼? (對於對maven和依賴管理沒有經驗的人,我感到抱歉) – MyrosinaseM

+0

你可以從中創建一個包含必要類的胖罐子。 – ManoDestra

回答

0

當編譯和打包你的代碼,所產生的罐子通常只包含代碼。您需要將相關的jar文件添加到類路徑中。這意味着,無論您何時調用java -jar yourapp.jar some.package.MainClass來運行應用程序,都需要列出java命令的-cp選項中所有必需的jar文件。

另一個(壞)解決方案可能是使用maven的程序集插件(或其他方法)來創建一個fat-jar,它基本上是yourapp.jar和所有相關jar的合併。

閱讀:Building a fat jar using maven

+0

請注意,有[專用工具](http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/)用於爲JavaFX應用程序創建jar文件。 –