【发布时间】:2015-02-28 13:33:16
【问题描述】:
我正在使用以下 java 代码执行 bash 命令,当尝试复制文件时,该函数返回非零值但我能够创建文件。
复制命令:cp demo.txt /shared
输出为:127
创建文件命令:echo 'sample text' > demo.txt
输出为:0
public static int run(final String command)
{
String[] finalCommand;
Process process=null;
int temp=0;
finalCommand = new String[3];
finalCommand[0] = "bash";//"/usr/bin/ksh";
finalCommand[1] = "-c";
finalCommand[2] = command;
try {
final ProcessBuilder processBuilder = new ProcessBuilder(finalCommand);
processBuilder.redirectErrorStream(true);
process = processBuilder.start();
temp=process.waitFor();
}
catch (IOException e)
{
System.out.println( e.getMessage());
}
catch (InterruptedException e) {
System.out.println(e.getMessage());
}
return temp;
}
请帮忙
【问题讨论】:
-
你有文件夹 /shared 并且你有 /shared 的写权限吗?
-
打印标准输出,看看你遇到了什么错误
-
当您从 shell 尝试
cp demo.txt /shared时,它是否有效?
标签: java bash processbuilder file-copying