2010-10-20 127 views
2
try { 
    Runtime.getRuntime().exec("excel C:\\file.xls"); 
} catch (IOException ex) { 
    System.out.println(ex); 
} 

不起作用。 我必須把excel.exe的完整路徑才能工作。 如何使其具有通用性(適用於任何Excel文件夾/版本)? 當我從Windows運行(開始 - >運行)的操作系統運行相同的行 它的工作原理。 Java中是否有代碼模擬Windows的運行命令?Java - 使用runtime.getRuntime()運行Excel exec

回答

10

你爲什麼不嘗試在JDK6介紹了Desktop類(API文檔here),其具有被記錄爲什麼方法

public void open(File file) throws IOException 

你想做的事:

啓動關聯的應用程序來打開文件。 如果指定的文件是目錄,則會啓動當前平臺的文件管理器以將其打開。

當然這假定.xls擴展名被OS映射到Excel。然後你可以去

Desktop.getDesktop().open(new File("c:\\file.xls")); 
+0

它的工作原理,但我有路徑中的空間問題。嘗試了URI但沒有奏效。 – 2010-10-21 10:23:18

+0

也許你應該嘗試在雙引號之間嵌入文件名「..當然你應該轉義它們:''new File(」\「c:\\ filename with spaces.xls \」「)' – Jack 2010-10-21 13:10:16

0

直接調用Windows的「start.exe」命令而不是Excel。 Start.exe似乎會搜索路徑等。但是,如果不在路徑中,它仍然可能找不到路徑。

+0

不起作用。它無法找到它 – 2010-10-21 10:38:48

1

我用 Runtime rt = Runtime.getRuntime().exec("cmd.exe /C start " + *filename* 它爲我工作在Windows平臺上

相關問題