2015-07-12 108 views
3

我正在使用Eclipse开发Java桌面应用程序。 Desktop类有一个有用的方法,称为browse(),它在系统的默认浏览器中打开一个URI。我的问题是此功能在Eclipse中不再有效,但在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中被破坏。

回答

-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); 
     } 
    } 
} 
  • 试试这个有些时候,它取决于OS为好。
  • 检查打印声明是否提供URL。

    是否会工作请给您的评论

+0

因为我运行'Windows',所以支持桌面,所以这段代码和我在最初的文章中做的一样。测试还验证了这一点:在Desktop.getDesktop()的异常。browse(new URI(url));' – BullyWiiPlaza