默认浏览器打开异常

4
我正在使用Eclipse开发Java桌面应用程序。 Desktop类有一个有用的方法叫做browse(),它可以在系统默认浏览器中打开URI。我的问题是,在Eclipse中这个功能不再起作用了,但在Jar文件中运行代码时仍然正常工作。

这里有一个简短的可编译示例:

import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class OpenExample
{
    public static void main(String[] arguments) throws URISyntaxException, IOException
    {
        Desktop.getDesktop().browse(new URI("https://www.google.com/"));
    }
}

我收到了以下异常:

Exception in thread "main" java.io.IOException: Failed to open https://www.google.com/. Error message: A device attached to the system is not functioning.

    at sun.awt.windows.WDesktopPeer.ShellExecute(Unknown Source)
    at sun.awt.windows.WDesktopPeer.browse(Unknown Source)
    at java.awt.Desktop.browse(Unknown Source)
    at OpenExample.main(OpenExample.java:10)

什么可能是问题?显然,Java代码是正确的,由于以前它能够工作,所以在Eclipse或甚至Windows中可能有一些故障。
2个回答

0

问题仍然出现在最新的(1.8.0_112)jre版本中。 - betontalpfa

-1
import java.awt.Desktop;
import java.net.URI;

public class OpenExample {
    public static void main(String[] args) throws Exception {
        String url = "http://google.com";

        if (Desktop.isDesktopSupported()) { // for windows
            Desktop.getDesktop().browse(new URI(url));
        } else { // for linux
            Runtime runtime = Runtime.getRuntime();
            runtime.exec("/usr/bin/firefox -new-window " + url);
        }
    }
}
  • 有时候这取决于操作系统,请尝试一下。
  • 检查打印语句是否提供URL。

    如果可以,请给出您的评论。


由于我正在运行Windows,因此支持桌面。 因此,此代码与我最初的帖子中的代码执行相同的操作。 测试还验证了这一点:在Desktop.getDesktop().browse(new URI(url));处出现异常。 - BullyWiiPlaza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接