我尝试从 java 中执行 windows 进程(在这种特殊情况下为 cmd.exe)并偶然发现了一个问题。对命令没有反应net statistics server
(对其他命令也没有反应)。
我在 SO 上看到的示例使用他们需要的所有参数创建了该过程。但我想直接写入进程的输出流。那么我该怎么做呢?我究竟做错了什么?
public class CmdExecutor
{
public static void main(String[] args)
{
ProcessBuilder pb = new ProcessBuilder("cmd");
pb.directory(new File("/"));
Process p = null;
try
{
p = pb.start();
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
if (p != null)
{
Scanner s = new Scanner(p.getInputStream());
PrintWriter out = new PrintWriter(p.getOutputStream());
boolean commandSent = false;
while (s.hasNext())
{
System.out.println(s.nextLine());
if (!commandSent)
{
out.println("net statistics server");
commandSent = true;
}
}
}
}
}
唯一的输出是:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.