gpt4 book ai didi

java - bash 命令使用 java process builder 复制文件

转载 作者:行者123 更新时间:2023-12-04 18:05:25 24 4
gpt4 key购买 nike

我正在使用以下 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;
}

请帮忙

最佳答案

cp 失败和 echo 工作的一种可能性是由于 cp 是外部命令而 echo 是内置命令。

如果设置并导出了 PATH 环境变量,则外部命令只能通过其文件名找到。

但在这种情况下,永远不要依赖 PATH - 使用完整路径名:

String command = "/bin/cp demo.txt /shared";

还有:你有/shared 的写权限吗?

关于java - bash 命令使用 java process builder 复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27738429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com