2014-12-13 42 views
1

我的項目使用javafx jar,並通過maven中的系統範圍包含它。它在我的本地工作正常。現在,由於jar是通過系統範圍包含的,因此它不包含在fat jar中,而且,當我部署該胖jar時,它將爲javafx類提供ClassNotFound Exception。爲什麼無法在部署項目的機器上訪問javafx jar,因爲javafx也位於該機器的同一個lib文件夾中?系統作用域Jar拋出類未找到異常

PS:我手動將javafx jar複製到JAVA_HOME/lib /文件夾中的那臺機器上。

更新:剛注意到從本地運行jar,拋出了這個錯誤,雖然在eclipse中運行良好。

回答

0

可能有許多原因,這是發生:

1)當你在JavaFX的罐子被複制,權限是錯了,所以它不是通過運行Java程序的過程中可讀。

2.)運行java程序的用戶在類路徑中沒有JAVA_HOME/lib文件夾。如果您將程序作爲服務級別用戶運行,但將java作爲另一用戶安裝,則可能會發生這種情況。有時可能不會爲其配置文件中的其他用戶設置JAVA_HOME。 3)你的目標jar的不同版本可能會移動類,這樣使用版本1.0運行就可以運行,但2.0會導致類沒有發現異常,因爲類已經被移動到新的包中。確保你在這兩個地方都有相同版本的javafx jar。