Java – 使用runtime.getRuntime().exe运行Excel

try { Runtime.getRuntime().exec("excel C:\\file.xls"); } catch (IOException ex) { System.out.println(ex); } 

不起作用。 我必须把excel.exe的完整path才能工作。 我怎样才能使它通用(对于任何Excel文件夹/版本)? 当我从Windows运行(开始 – >运行)从OS运行相同的行,它的工作原理。 在Java中是否有代码模拟Windows的运行命令?

为什么不尝试使用JDK6中引入的具有该方法的Desktop类(api doc)

 public void open(File file) throws IOException 

这是logging为你想要做的事情:

启动关联的应用程序以打开文件。 如果指定的文件是目录,则启动当前平台的文件pipe理器以将其打开。

当然,这个假定.xls扩展名被OS映射到Excel。 那你可以去

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

我使用Runtime rt = Runtime.getRuntime().exec("cmd.exe /C start " + *filename*它适用于我在Windows平台

直接调用Windows的“start.exe”命令而不是Excel。 Start.exe似乎会searchpath等。但是,如果它不在path中,它仍然可能找不到它。

您可以尝试使用“cmd”而不是“excel”,然后传入一个参数数组。

为了更容易debugging,您也可以尝试使用ProcessBuilder。 根据我的经验,处理更好: http : //download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html

Interesting Posts