2015-07-12 114 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