Java - 使用runtime.getRuntime().exec运行Excel

发布于 2024-09-28 10:55:01 字数 281 浏览 9 评论 0 原文

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

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

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

Doesn't work.
I have to put the full path of excel.exe in order to work.
How can I make it generic (For any Excel Folders/Versions)?
When I run the same line from OS with Windows Run (Start --> Run)
it works. Is there a code in Java to simulate Windows' Run command?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

逆流 2024-10-05 10:55:01

为什么不尝试使用 Desktop 类(api 文档 这里)在 JDK6 中引入,该方法具有

public void open(File file) throws IOException

记录为您想要执行的操作:

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

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

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

Why don't you try with the Desktop class (api doc here) introduced in JDK6 that has the method

public void open(File file) throws IOException

which is documented as what you want to do:

Launches the associated application to open the file.
If the specified file is a directory, the file manager of the current platform is launched to open it.

Of course this assumes that .xls extension is mapped by OS to Excel. Then you can go with

Desktop.getDesktop().open(new File("c:\\file.xls"));
a√萤火虫的光℡ 2024-10-05 10:55:01

我用
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

陌路黄昏 2024-10-05 10:55:01

调用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.

梦幻的心爱 2024-10-05 10:55:01

您可以尝试使用“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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文