gpt4 book ai didi

java - Linux从Java程序复制文件

转载 作者:IT王子 更新时间:2023-10-29 01:16:04 26 4
gpt4 key购买 nike

我用 getRuntime() API 编写了一个小的 java 代码来将文件从一个目录复制到另一个目录,它失败了,我不明白为什么?当我从 shell 运行命令时它运行正常,任何人都可以,请告诉我我正在做的错误

    private static void copyFilesLinux(String strSource, String strDestination) {

String s;
Process p;
try {
// cp -R "/tmp/S1/"* "/tmp/D1/"
p = Runtime.getRuntime().exec(
"cp -R '" + strSource + "/'* '" + strDestination + "/'");
System.out.println("cp -R \"" + strSource + "/\"* \"" + strDestination + "/\"");
System.out.println("cp -R '" + strSource + "/'* '" + strDestination + "/'");
System.out.println(p.toString());
BufferedReader br = new BufferedReader(new InputStreamReader(
p.getInputStream()));
while ((s = br.readLine()) != null)
System.out.println("line: " + s);
p.waitFor();
System.out.println("exit: " + p.exitValue());
p.destroy();
}
catch (InterruptedException iex) {
iex.printStackTrace();
}
catch (IOException iox) {
iox.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}

}

输出:

cp -R "/tmp/S1/"* "/tmp/D1/"

cp -R '/tmp/S1/'* '/tmp/D1/'

java.lang.UNIXProcess@525483cd

exit: 1

最佳答案

它与下面的代码一起工作,

            String[] b = new String[] {"bash", "-c", "cp -R \"" + strSource + "/\"* \"" + strDestination + "/\""};  
p = Runtime.getRuntime().exec(b);

我用谷歌搜索了一下,找到了链接

http://www.coderanch.com/t/423573/java/java/Passing-wilcard-Runtime-exec-command

关于java - Linux从Java程序复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15265461/

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