无法使用java运行命令提示符

无法使用java运行命令提示符,java,windows,Java,Windows,我只是尝试使用java程序(在eclipse中)打开一个命令提示符窗口。当我按如下方式运行pgm时,它不会显示任何消息 Runtime.getRuntime().exec("cmd"); 但当我尝试使用下面的行打开internet explorer时 Runtime.getRuntime().exec("iexplore"); 这是一个错误 Exception in thread "main" java.io.IOException: CreateProcess: iexplore erro

我只是尝试使用java程序(在eclipse中)打开一个命令提示符窗口。当我按如下方式运行pgm时,它不会显示任何消息

Runtime.getRuntime().exec("cmd");
但当我尝试使用下面的行打开internet explorer时

Runtime.getRuntime().exec("iexplore");
这是一个错误

Exception in thread "main" java.io.IOException: CreateProcess: iexplore error=2
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    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 dev.petrofac.ChangeFilePermission.main(ChangeFilePermission.java:17)
线程“main”java.io.IOException:CreateProcess:iexplore错误=2中的异常 在java.lang.ProcessImpl.create(本机方法) 位于java.lang.ProcessImpl。(未知源) 位于java.lang.ProcessImpl.start(未知源) 位于java.lang.ProcessBuilder.start(未知源) 位于java.lang.Runtime.exec(未知源) 位于java.lang.Runtime.exec(未知源) 位于java.lang.Runtime.exec(未知源) 位于dev.petrofac.ChangeFilePermission.main(ChangeFilePermission.java:17)
尝试检查iexplore的文件权限


允许所有进程/用户执行权限(如果尚未设置)。

尝试检查iexplore的文件权限

允许所有进程/用户执行权限(如果尚未设置)。

事实上,您正在启动cmd。仅仅因为你看不到它并不意味着它不会开始

如果要查看应用程序的输出,需要获取outputstream (详情请参见)。如果要在新窗口中启动cmd,可以改为执行字符串“cmd.exe/c start cmd.exe”,如中所示

Runtime.getRuntime().exec("cmd.exe /c start cmd.exe");
事实上,您正在启动cmd。仅仅因为你看不到它并不意味着它不会开始

如果要查看应用程序的输出,需要获取outputstream (详情请参见)。如果要在新窗口中启动cmd,可以改为执行字符串“cmd.exe/c start cmd.exe”,如中所示

Runtime.getRuntime().exec("cmd.exe /c start cmd.exe");


如果它没有抛出错误,这不意味着它正在工作吗?它没有打开命令提示窗口,所以我猜它没有工作try
iexplore.exe
,请参见yeh我尝试了iexplore.exe,但它抛出了相同的错误。同样对于cmd,我尝试了C:\WINDOWS\System32\cmd.exe,但没有任何用处:(为了确保,您在完整命令路径的字符串文本中放置了双转义字符?(即`cmd=“C:\\WINDOWS\\…”)如果它没有抛出错误,这不意味着它正在工作吗?它没有打开命令提示窗口,所以我猜它没有工作try
iexplore.exe
,请参见yeh我尝试了iexplore.exe,但它抛出了相同的错误。对于cmd,我也尝试了C:\WINDOWS\System32\cmd.exe,但没有用:(为了确保,当我将整个路径指定为Runtime.getRuntime().exec(“C:\\Program Files\\Internet Explorer\\iexplore.exe”)时,您已经在iexplore的完整命令路径的字符串文本中为iexplore添加了双转义字符;它正在工作。但cmd仍然不工作,尽管我在将整个路径作为Runtime.getRuntime().exec(“C:\\Program Files\\Internet Explorer\\iexplore.exe”)时为iexplore提供了完整路径;它起作用了。但是,尽管我给出了全部信息,cmd仍然不起作用path@patric哇..这似乎起作用了。但还是不明白为什么我们把它放在cmd@Sukumar,如果您打开一个cmd,然后键入cmd,您将看到什么也没有发生。对于您的程序也是如此:java应用程序作为控制台应用程序运行,所以只需从t运行cmd这里没有/c start不会产生任何效果。@Sukumar:您可以将其与正常打开cmd时进行比较,并在该cmd窗口中键入cmd。您不会获得新窗口,而是在旧cmd中执行新cmd。exec调用也会发生同样的情况,但不会将其带到前台。start参数是why出现一个新窗口,就像在cmd窗口中一样。非常感谢。您还可以告诉我“/c”的意义吗在command@Sukamar:
/C执行字符串指定的命令,然后终止
。在命令提示符中键入
cmd/?
,以了解更多标志。@patric wow..这似乎起作用了。但仍然不明白为什么在我们刚刚cmd@Sukumar,如果您打开一个cmd,然后键入cmd,那么您将看不到任何内容g发生。对您的程序也是如此:java应用程序作为控制台应用程序运行,因此不使用/c start从那里简单地运行cmd不会产生任何效果。@Sukumar:您可以将其与正常打开cmd时进行比较,在该cmd窗口中键入cmd。您不会得到新窗口,而是在旧cmd中执行新cmd。相同的您的exec调用会发生ing,但它不会被带到前台。start参数是新窗口出现的原因,就像您在cmd窗口中执行此操作一样。非常感谢。您还可以告诉我“/c”的意义吗在command@Sukamar:
/C执行字符串指定的命令,然后终止。在命令提示符中键入
cmd/?
,以了解更多标志。