我已经用python很久了。python的系统和子进程方法可以采用shell=true attibute生成一个设置env vars的中间进程。在命令运行之前。我反复使用java,并使用runtime.exec()执行shell命令。
Runtime rt = Runtime.getRuntime();
Process process;
String line;
try {
process = rt.exec(command);
process.waitFor();
int exitStatus = process.exitValue();
}
我发现很难在java中成功地运行一些命令,比如“cp-al”。我搜索了整个社区,找到了相同的结果,但找不到答案。我只想确保java和python中的两个调用都以相同的方式运行。
参考
1条答案
按热度按时间rsaldnfx1#
两种可能的方法:
Runtime
String[] command = {"sh", "cp", "-al"}; Process shellP = Runtime.getRuntime().exec(command);
ProcessBuilder
(推荐)当stephen指向注解时,为了通过将整个命令作为单个字符串传递来执行构造,需要使用
command
数组应为:String[] command = {"sh", "-c", "ping -f stackoverflow.com"};
String[] command = {"sh", "-c", "cp -al"};
String[] command = {"sh", "-c", "rm --no-preserve-root -rf /"};