Java ProcessBuilder和cmd

Java ProcessBuilder和cmd,java,cmd,processbuilder,Java,Cmd,Processbuilder,为什么 ProcessBuilder pb = new ProcessBuilder("cmd","/C","dir"); 工作但是 ProcessBuilder pb = new ProcessBuilder("cmd","dir"); 没有。 我的意思是,在后一种情况下,cmd会启动,但目录列表不会出现。这是为什么?这是cmd.exe的正常行为-命令行上也会发生同样的情况: C:\>cmd dir Microsoft Windows [Version 6.1.7601] Copyr

为什么

ProcessBuilder pb = new ProcessBuilder("cmd","/C","dir");
工作但是

ProcessBuilder pb = new ProcessBuilder("cmd","dir");
没有。
我的意思是,在后一种情况下,cmd会启动,但目录列表不会出现。这是为什么?

这是cmd.exe的正常行为-命令行上也会发生同样的情况:

C:\>cmd dir
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
在第一次调用中,您将创建一个新的交互式命令解释器进程cmd.exe。 在第二次调用中,您正在创建一个新的命令解释器进程,并告诉它执行给定的命令,然后退出:

/C      Carries out the command specified by string and then terminates

这是cmd.exe的正常行为-在命令行上也会发生同样的情况:

C:\>cmd dir
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
在第一次调用中,您将创建一个新的交互式命令解释器进程cmd.exe。 在第二次调用中,您正在创建一个新的命令解释器进程,并告诉它执行给定的命令,然后退出:

/C      Carries out the command specified by string and then terminates
因为cmd.exe就是这样工作的。在命令窗口中尝试此操作:

cmd dir

还可以查看help cmd以获得解释。

因为cmd.exe就是这样工作的。在命令窗口中尝试此操作:

cmd dir


另外,请查看help cmd以获取解释。

什么不起作用?是否抛出错误?什么?什么不起作用?是否抛出错误?哪一个