使用java'执行windows命令;s运行时包

使用java'执行windows命令;s运行时包,java,Java,如果在命令提示符下执行此命令,则该命令将非常有效: start Outlook /a C:\Users\Steve\Desktop\test.jpg 但是,当我尝试使用getRuntime().exec()方法在java中执行它时,它会给我一个错误“无法运行程序”start:CreateProcess error=2,系统找不到指定的文件” 以下是我正在使用的代码: String command = "start Outlook /a C:\\Users\\Steve\\Desktop\\t

如果在命令提示符下执行此命令,则该命令将非常有效:

start Outlook /a C:\Users\Steve\Desktop\test.jpg
但是,当我尝试使用getRuntime().exec()方法在java中执行它时,它会给我一个错误“无法运行程序”start: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()方法一起使用

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

您忘记调用
cmd
,它将调用命令提示符来执行您的命令。

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";

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

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