我想從java的外部編輯器中打開文件,但是當我運行我的源代碼時,什麼也沒有發生。我使用的JRE 1.6和我的調度研究的系統是Windows 7。這裏是我的源代碼:從java打開文件編輯器
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
desktop.edit(new File("D:\\Document.rtf"));
我想從java的外部編輯器中打開文件,但是當我運行我的源代碼時,什麼也沒有發生。我使用的JRE 1.6和我的調度研究的系統是Windows 7。這裏是我的源代碼:從java打開文件編輯器
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
desktop.edit(new File("D:\\Document.rtf"));
下也應努力:
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);
}
我不認爲應該給OP一個替代解決方案,而是告訴他在當前代碼中他的錯誤是什麼。 –
第一個解決方案對我來說很好。非常感謝你,你解決了我的問題。但我仍然好奇,爲什麼我原來的源代碼不工作......嗯:) – dulo
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
你測試,並打印堆棧跟蹤從
你爲什麼不通過把一些的System.out.println()語句中,如果塊調試,並在那裏引發的任何異常?這對我來說工作得很好。 – Sundeep
當您嘗試在沒有Java的計算機上打開一個rtf文件時會發生什麼? – Jeffrey
這5行不在'try {...} catch(Exception e){}'裏面?如果他們是,那麼你有你的答案:不要忽視例外。 –