Linux从Java程序复制文件

Linux从Java程序复制文件,第1张

概述我用getRuntime()API编写了一个小的 java代码,用于将文件从一个目录复制到另一个目录,它失败了,我无法理解为什么?当我从shell运行命令它运行正常,任何人都可以,让我知道我正在做的错误 private static void copyFilesLinux(String strSource, String strDestination) { String s; P 我用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.@R_404_1715@();    }    catch (IOException iox) {        iox.@R_404_1715@();    }    catch (Exception e) {        e.@R_404_1715@();    }}

输出:

cp -R "/tmp/S1/"* "/tmp/D1/"cp -R '/tmp/S1/'* '/tmp/D1/'java.lang.UNIXProcess@525483cdexit: 1
解决方法 当您使用Runtime.exec()的任何变体时,将直接调用二进制文件,而不是通过shell调用.这意味着 wildcards are not supported,因为没有shell来扩展它们.

我建议使用Java代码来复制你的文件 – 它会更便携,更安全.除此之外,您可以使用shell二进制文件通过其-c选项执行命令.

总结

以上是内存溢出为你收集整理的Linux从Java程序复制文件全部内容,希望文章能够帮你解决Linux从Java程序复制文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1018832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存