2012-05-27 140 views
1

我想從java的外部編輯器中打開文件,但是當我運行我的源代碼時,什麼也沒有發生。我使用的JRE 1.6和我的調度研究的系統是Windows 7。這裏是我的源代碼:從java打開文件編輯器

Desktop desktop = null; 
if (Desktop.isDesktopSupported()) { 
    desktop = Desktop.getDesktop(); 
} 

desktop.edit(new File("D:\\Document.rtf")); 
+0

你爲什麼不通過把一些的System.out.println()語句中,如果塊調試,並在那裏引發的任何異常?這對我來說工作得很好。 – Sundeep

+0

當您嘗試在沒有Java的計算機上打開一個rtf文件時會發生什麼? – Jeffrey

+0

這5行不在'try {...} catch(Exception e){}'裏面?如果他們是,那麼你有你的答案:不要忽視例外。 –

回答

1

下也應努力:

Runtime.getRuntime().exec("cmd /C D:\\Document.rtf"); 

Runtime run = Runtime.getRuntime(); 
    String lcOSName = System.getProperty("os.name").toLowerCase(); 
    boolean MAC_OS_X = lcOSName.startsWith("mac os x"); 
    if (MAC_OS_X) { 
     run.exec("open " + file); 
    } else { 
     //run.exec("cmd.exe /c start " + file); //win NT, win2000 
     run.exec("rundll32 url.dll, FileProtocolHandler " + path); 
    } 
+0

我不認爲應該給OP一個替代解決方案,而是告訴他在當前代碼中他的錯誤是什麼。 –

+0

第一個解決方案對我來說很好。非常感謝你,你解決了我的問題。但我仍然好奇,爲什麼我原來的源代碼不工作......嗯:) – dulo

0
  • 你看了API

public void edit(File file) throws IOException

啓動關聯編輯器應用程序並打開一個文件進行編輯。

參數: 文件 - 該文件進行編輯 打開拋出: NullPointerException - 如果指定的文件是空 - 如果指定的文件不存在 UnsupportedOperationException - 如果當前平臺不支持IOException - 如果指定的文件沒有關聯的編輯器,或者關聯的應用程序無法啓動 SecurityException - 如果安全管理器存在並且其SecurityManager.checkRead(java.lang.String)方法拒絕讀取訪問或者SecurityManager.checkWrite(java.lang.String)方法拒絕對該文件的寫入訪問,或者拒絕AW TPermission( 「showWindowWithoutWarningBanner」)權限,或者調用線程不允許創建子進程 另請參見: 的AWTPermission

+0

嗨,我按照你的建議測試了這兩個異常,但沒有一個被拋出。 – dulo

+0

沒有人告訴我們所有軟件都有編輯模式 – mKorbel