我目前正在開發一個Swing
桌面應用程序。此應用程序還使用由SystemTray
of dorkbox處理的托盤圖標。的Java/Swing的:Desktop.open()導致GTK-ERROR
現在我需要打開與默認應用程序文件。爲了達到這個目的,我使用這樣的AWT
的Desktop.open()
方法。
if (Desktop.isDesktopSupported()) {
System.out.println("Get desktop.");
Desktop desktop = Desktop.getDesktop();
System.out.println("Got desktop.");
desktop.open(file);
}
但現在這裏來了問題:在某些設備上(這顯然有GTK2和GTK3安裝此幾行應用程序崩潰 - 程序崩潰,同時執行與一個gtk-error ** gtk+ 2.x symbols detected. using gtk+ 2.x and gtk+ 3 is not supported
的Desktop.isDesktopSupported()
線
要。說實話,我不知道到底是怎麼回事錯在這裏 - 。但如果只安裝GTK3應用程序運行就像一個魅力的SystemTray
好像是用GTK3以及因爲我沒有明確地將它設置爲使用GTK2 所以,什麼導致這種混合的GTK2和3?有沒有辦法迫使Desktop
類使用正確的 GTK版本(與其他應用程序一樣)?
如果GTK 2和GTK 3具有相同的名字(我猜他們這樣做)的一些庫文件,無一不是在庫路徑,我希望任何GTK 3應用程序報告此錯誤。 – VGR
顯然情況並非如此。有趣的問題是:爲什麼'AWT'的一部分使用'GTK3'作爲'swing'的另一部分使用'GTK2'(反之亦然)。 – FlashTek
你的應用程序是如何啓動的?我試圖建議在您的環境中修改LD_LIBRARY_PATH。 – VGR