JavaFX錯誤集錦

我的系統是Deepin15.8,Java version:1.8.0_181,在編寫JavaFX程序出現下述錯誤,在網上搜索了很久才找到解決方法

不同的機器、系統各有差異,解決方法也各有不同,如果下面的解決方法不好使也不奇怪,因爲我也試了很多人的方法不好使

StackOverflow網站上的討論有不少是比較有意義的,值得一看

Graphics Device initialization failed for : es2, sw

在運行程序的時候加上-Dprism.verbose=true參數會輸出更多信息,如java -Dprism.verbose=true MainApp,MainApp爲主程序

大概會多出下面這條異常
java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jdk1.8.0_181/jre/lib/i386/libprism_es2.so
error while loading shared libraries: libgtk-x11-2.0.so.0

原因是缺少32爲的庫,更多的討論可以查看 JavaFX on Linux is showing a “Graphics Device initialization failed for : es2, sw”

解決方法
sudo apt-get install libgtk2.0-0:i386

java.lang.IllegalStateException: Location is not set

這種錯誤一般是fxml文件的路徑有問題,我遇到的情況是,將java文件與class文件放在不同的文件夾,即在使用javac編譯是加上-d指定輸出位置,但是javac並不會自動將fxml文件複製到class文件夾中,程序執行的時候在class文件夾沒有找到fxml文件,因此出錯

解決方法
將fxml文件複製到class文件夾

無法在模塊路徑中找到主題引擎:adwaita,pixmap, murrine

(java:11206): Gtk-WARNING **: 10:58:11.285: 無法在模塊路徑中找到主題引擎:“adwaita”,
(java:11206): Gtk-WARNING **: 10:58:11.285: 無法在模塊路徑中找到主題引擎:“pixmap”,
(java:11206): Gtk-WARNING **: 10:58:11.289: 無法在模塊路徑中找到主題引擎:“murrine”

在運行JavaFX程序的時候出現這些提示,缺少相應的主題引擎,程序仍然能正常運行,但是每次都輸出這些提示總是不太舒服

解決方法
運行下列命令安裝對應32位主題引擎
sudo apt-get install gnome-themes-extra:i386
sudo apt-get install gtk2-engines-pixbuf:i386
sudo apt-get install gtk2-engines-murrine:i386

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章