5

如果我想从 Java 应用程序打开记事本,那么它将打开记事本。但如果我尝试打开 Excel,那么它会给我一个例外。

try
    {
        Runtime.getRuntime().exec("excel");
    }
    catch (IOException e) 
    {
      e.printStackTrace();
    }

以下是例外:

java.io.IOException: Cannot run program "excel": CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at OpenNotepad.main(OpenNotepad.java:18)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 5 more

当我开始->运行-> Excel时,它将打开excel。

4

5 回答 5

4

如果您尝试使用 Java 打开 Excel 文件,而不仅仅是打开 Excel,我建议您使用 Desktop API 类:http ://docs.oracle.com/javase/6/docs/api/java/awt/桌面.html

此类将使用默认的 OS 文件处理机制,因此它将在 Windows 中使用 MS Excel,在 Linux 中使用 Open Office。

于 2013-06-24T14:01:48.380 回答
4

Runtime.getRuntime().exec("some command");与“某些命令”在 cmd 中的作用相同。所以打开Excel的解决方案你应该试试这个。

try {
    Runtime.getRuntime().exec("cmd /c start excel.exe");
} catch (IOException e) {
    e.printStackTrace();
}
于 2017-04-02T08:30:17.690 回答
0

添加 microsoft office excel 可执行路径,例如:如果目录 C:\Program Files (x86)\Microsoft Office\Office14 有 EXCEL.EXE,则将 C:\Program Files (x86)\Microsoft Office\Office14 添加到您的类路径。如何添加到类路径单击此处。完成后,重新启动 IDE,您的程序应该可以运行。

于 2013-06-24T17:50:29.787 回答
0

在 exec 方法中给出安装 excel 的完全合格路径,然后尝试 RunTime 很好,但最好使用 ProcessBuilder

于 2013-06-24T13:33:48.630 回答
0

Runtime.getRuntime().exec()与从命令行执行某些操作相同。

在 Windows 操作系统中,有一个环境变量设置为C:\Windows\System32 命令的所有 exe 都在此路径中。

当我在 cmd 中执行以下操作时,我得到了这个。

C:\Users\bhaviksh>echo %PATH%
D:\oracle\product\10.2.0\client_1\bin;C:\Windows\system32;C:\Windows;C:\Windows\
System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\MySQL
\MySQL Server 5.0\bin;C:\Program Files\cvsnt;C:\Program Files\TortoiseSVN\bin;C:
\maven\bin

解决方案:使用 exe 文件的完全限定名

于 2013-06-24T13:38:55.507 回答