同一个JRE中的2个应用程序从java.awt.Desktop.isDesktopSupported()获得不同的结果

时间:2014-03-21 11:13:27

标签: java maven tomcat awt liferay

我有一个使用java.awt.Desktop的Maven项目。我已将其用于Google身份验证,因此我需要一些方法来打开Goog​​le登录和用户确认的浏览器对话框。

我在.jar文件中导出该库,我打算将它包含在许多Liferay Portlet中,在WEB-INF / lib中

如果我测试独立项目,从Liferay的Tomcat jre运行,一切正常,Desktop.isDesktopSupported()返回 true

当部署在 Same Tomcat 上的portlet调用相同的库函数时,Desktop.isDesktopSupported()会返回 false

因为在这两种情况下,我都使用相同的Java环境,为什么我会得到不同的行为

另外,如果您知道打开浏览器窗口而不是使用Desktop.browse的替代方法,那么分享会很不错。

1 个答案:

答案 0 :(得分:0)

仍然不确定为什么它不能在Servlet / PortletContext中工作。

解决方法是使用Java.lang.Runtime打开os浏览器,如演示here