java中的shell Unix命令
我试图用java执行unix命令,比如C中的system("ls");
。
我试过这个,但它不打印任何东西:
Process p=Runtime.getRuntime().exec("ls");
OutputStream in=p.getOutputStream();
PrintStream print = new PrintStream(in);
print.println("String");
有什么想法吗
你可以在下面搜索框中键入要查询的问题!
我试图用java执行unix命令,比如C中的system("ls");
。
我试过这个,但它不打印任何东西:
Process p=Runtime.getRuntime().exec("ls");
OutputStream in=p.getOutputStream();
PrintStream print = new PrintStream(in);
print.println("String");
有什么想法吗
# 1 楼答案
有一个很好的库来做这个zt-exec
或者
# 2 楼答案
您必须从处理输入流中读取命令响应(如果有),如下所示:
但如果发生错误,进程将写入错误流,因此必须检查两个流
# 3 楼答案
您可以使用更新的^{} 类,它比
Runtime.exec
方法有更多的选项。之所以看不到任何输出,是因为新进程的标准输出流默认通过管道连接到JVM。可以使用redirectOutput
方法使新进程继承JVM的标准输出:使用外壳重定向到控制终端,可以得到类似的结果: