1 回答
TA贡献1862条经验 获得超6个赞
ProcessBuilder的构造函数接受一个命令,每个后续的 String 都被视为第一个 String 的参数,被识别为主命令。
尝试更换/bin/bash用pandoc,看看它是否工作。
在我这边,我可以在没有 ProcessBuilder 帮助的情况下运行任意命令,Runtime.getRuntime().exec(...)而是使用,如下所示:
public static void main(String[] args) throws Exception {
Process proc = Runtime.getRuntime().exec("cmd /c ipconfig");
BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = null;
while((line = reader.readLine()) != null){
System.out.println(line);
}
}
获得预期输出:
Configurazione IP di Windows
Scheda Ethernet Ethernet:
Suffisso DNS specifico per connessione:
Indirizzo IPv6 locale rispetto al collegamento . : fe80::fcba:735a:5941:5cdc%11
Indirizzo IPv4. . . . . . . . . . . . : 192.168.0.116
Subnet mask . . . . . . . . . . . . . : 255.255.255.0
Gateway predefinito . . . . . . . . . : 192.168.0.1
Process finished with exit code 0
如果你真的需要使用ProcessBuilder,同样的行为可以通过定义你的Process方式来实现:
Process proc = new ProcessBuilder("ipconfig").start();
只需调用您要运行的命令即可。
添加回答
举报