我有以下代码
desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
url = new URL("http://www.facebook.com");
if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
try {
desktop.browse(url.toURI());
} catch (Exception e) {
e.printStackTrace();
}
和桌面为Windows 7返回null。有人可以建议做什么吗?
答案 0 :(得分:1)
不确定它不适用于Windows 7(它对我有用),但桌面无论如何都可以返回假阴性。我有一个similar problem并且我能找到的唯一方法是使用java.lang.Runtime
以困难的方式打开系统浏览器对于Windows,您的代码将是
Runtime.getRuntime().exec( "rundll32 url.dll,FileProtocolHandler " + url);
可以找到涵盖OSX和Linux的非常好的完整工作代码here
答案 1 :(得分:0)
public static boolean isDesktopSupported()
测试当前平台是否支持此类。如果支持,请使用getDesktop()来检索实例。
返回:
true
如果当前平台支持此类; false
否则
简而言之: Windows 7不支持此类
另请参阅:similar question