我目前正在开发一个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