try {
Runtime.getRuntime().exec("excel C:\\file.xls");
} catch (IOException ex) {
System.out.println(ex);
}
不工作。我必须输入 excel.exe 的完整路径才能工作。如何使其通用(对于任何 Excel 文件夹/版本)?当我使用 Windows 运行(开始->运行)从操作系统运行同一行时,它可以工作。Java中是否有代码来模拟Windows的运行命令?
try {
Runtime.getRuntime().exec("excel C:\\file.xls");
} catch (IOException ex) {
System.out.println(ex);
}
不工作。我必须输入 excel.exe 的完整路径才能工作。如何使其通用(对于任何 Excel 文件夹/版本)?当我使用 Windows 运行(开始->运行)从操作系统运行同一行时,它可以工作。Java中是否有代码来模拟Windows的运行命令?
为什么不尝试使用JDK6中引入的具有该方法的Desktop
类(api doc here )
public void open(File file) throws IOException
这被记录为您想要做的事情:
启动关联的应用程序以打开文件。如果指定的文件是目录,则启动当前平台的文件管理器打开它。
当然,这假设.xls
扩展名由 OS 映射到 Excel。然后你可以去
Desktop.getDesktop().open(new File("c:\\file.xls"));
我在 Windows 平台上使用
Runtime rt = Runtime.getRuntime().exec("cmd.exe /C start " + *filename*
它适用于我
直接调用 Windows“start.exe”命令而不是 Excel。Start.exe 似乎搜索路径等。但是,如果它不在路径中,它仍然可能找不到它。
您可以尝试使用“cmd”而不是“excel”,然后传入一个参数数组。
为了更容易调试,您也可以尝试改用 ProcessBuilder。根据我的经验,使用它会更好:http: //download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html