2010-10-20 125 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平台上

相关问题