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

不工作。我必须输入 excel.exe 的完整路径才能工作。如何使其通用(对于任何 Excel 文件夹/版本)?当我使用 Windows 运行(开始->运行)从操作系统运行同一行时,它可以工作。Java中是否有代码来模拟Windows的运行命令?

4

4 回答 4

11

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

public void open(File file) throws IOException

这被记录为您想要做的事情:

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

当然,这假设.xls扩展名由 OS 映射到 Excel。然后你可以去

Desktop.getDesktop().open(new File("c:\\file.xls"));
于 2010-10-20T13:39:50.680 回答
1

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

于 2015-08-05T14:11:12.310 回答
0

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

于 2010-10-20T13:34:53.233 回答
0

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

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

于 2010-10-20T13:36:12.913 回答