使用java的Runtime包执行windows命令

时间:2014-04-10 01:19:48

标签: java

如果我在命令提示符下执行此命令,则此命令可以正常工作:

start Outlook /a C:\Users\Steve\Desktop\test.jpg

但是当我尝试使用getRuntime()。exec()方法在java中执行它时,它给出了一个错误“无法运行程序”启动“:CreateProcess error = 2,系统无法找到指定的文件”

这是我正在使用的代码:

 String command = "start Outlook /a C:\\Users\\Steve\\Desktop\\test.jpg";
    try {
        Runtime.getRuntime().exec(command);
    } catch (IOException e1) {
        e1.printStackTrace();
    }

不确定我在这里做错了什么。 start命令是命令提示符中的有效命令,我不知道如何使用java的.exec()方法

3 个答案:

答案 0 :(得分:1)

start不是一个程序;没有start.exe,它只是一个shell命令。

它的目的是在新的命令窗口中启动程序。您必须使用cmd来运行该命令:

String command = "cmd /c start Outlook /a C:\\Users\\Steve\\Desktop\\test.jpg";

但你实际上并不需要它。只是做:

String command = "Outlook /a C:\\Users\\Steve\\Desktop\\test.jpg";

答案 1 :(得分:1)

命令提示符与Runtime.exec的操作略有不同。 start是由提示提供的命令,但不是真正的程序。要使其工作,您可以调用提示来运行Outlook:

String command = "cmd /c start Outlook /a C:\\Users\\Steve\\Desktop\\test.jpg";

答案 2 :(得分:0)

尝试:

String command = "cmd /c start Outlook /a C:\\Users\\Steve\\Desktop\\test.jpg";

你忘了打电话给cmd,它会调用命令提示符来执行你的命令..