desktop = Desktop.getDesktop().browse(uri);
上述代码在Ubuntu OS中不起作用。如果我执行此代码,那么我的应用程序会被触发并挂起一段时间,在此期间我无法在java控制台中停止正在运行的应用程序。能够关闭该应用程序的唯一方法是 FORCE QUIT 。
答案 0 :(得分:1)
此API依赖于gnome库,您需要安装gnome库才能使其正常工作。
类似sudo apt-get install libgnome
的东西我应该做的伎俩(不要手头有我的ubuntu桌面检查包名,如果不起作用,请尝试apt-cache search libgnome
找到真实姓名。)< / p>
注意:您应该指定您正在使用的JVM,我假设它是oracle JVM。
你也可以尝试browserlaunch2,但它已经很老了,而且我自己从未使用过它。正如它在网站上所写,它意味着在提供的URL上打开默认浏览器:
BrowserLauncher2是BrowserLauncher项目的延续,是一个便于从Java应用程序打开浏览器并将浏览器定向到提供的URL的库。在大多数情况下,打开的浏览器将是用户的默认浏览器。
BrowserLauncher launcher = new BrowserLauncher();
launcher.openURLinBrowser("http://www.google.com");
由于BrowserLauncher2是开源的,您还可以查看它如何检测默认浏览器。
答案 1 :(得分:1)
有多个关于此问题的主题。我在Ubuntu 16.04上也有同样的问题。我在这里发布了我正在使用的解决方法:Desktop.getDesktop().browse Hangs