Java - 使用runtime.getRuntime().exec运行Excel
try {
Runtime.getRuntime().exec("excel C:\\file.xls");
} catch (IOException ex) {
System.out.println(ex);
}
不起作用。 我必须输入 excel.exe 的完整路径才能工作。 如何使其通用(对于任何 Excel 文件夹/版本)? 当我使用 Windows Run 从操作系统运行同一行时(开始 --> 运行) 有用。 Java中有没有模拟Windows运行命令的代码?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
为什么不尝试使用
Desktop
类(api 文档 这里)在 JDK6 中引入,该方法具有记录为您想要执行的操作:
当然,这假设
.xls
扩展名由操作系统映射到 Excel。然后你可以去Why don't you try with the
Desktop
class (api doc here) introduced in JDK6 that has the methodwhich is documented as what you want to do:
Of course this assumes that
.xls
extension is mapped by OS to Excel. Then you can go with我用
Runtime rt = Runtime.getRuntime().exec("cmd.exe /C start " + *文件名*
它在 Windows 平台上适用于我
I use
Runtime rt = Runtime.getRuntime().exec("cmd.exe /C start " + *filename*
it works for me on Windows platforms
调用Windows“start.exe”命令而不是直接调用Excel。 Start.exe 似乎会搜索路径等。但是,如果它不在路径中,它仍然可能找不到它。
Call the Windows "start.exe" command instead of Excel directly. Start.exe appears to search paths, etc. However, it still may not find it if it's not in the path.
您可以尝试使用“cmd”而不是“excel”,然后传入参数数组。
为了更轻松地调试,您也可以尝试使用 ProcessBuilder。根据我的经验,使用它会更好: http:// /download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html
You might try using "cmd" instead of "excel", and then pass in an array of params.
For easier debugging, you might also try using ProcessBuilder instead. In my experience it's much nicer to work with: http://download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html