【问题标题】:Java processbuilder - how to execute xargs commandJava processbuilder - 如何执行 xargs 命令
【发布时间】:2023-03-11 08:16:01
【问题描述】:

我正在尝试使用 java processbuilder 执行以下命令

ls | xargs cat > pathtonewFile

目前我的代码是

 String command="ls | xargs cat >t"

 ProcessBuilder probuilder = new ProcessBuilder(command);
 probuilder.start()

目前执行没有错误,但没有创建新文件。

我根据此处的另一篇帖子尝试过以下操作:Problem Using Java ProcessBuilder to Execute a Piped Command

   ProcessBuilder probuilder = new ProcessBuilder("sh", "-c", "ls  | xargs cat >        pathtonewfile");

命令执行但创建一个 0 字节文件。

【问题讨论】:

  • 令我震惊的是,这个问题很可能出在您正在执行的命令中。尝试从 shell 提示符运行相同的命令。一种可能性是该命令正在使用错误的当前目录运行。

标签: java linux shell command-line execute


【解决方案1】:

尝试将文件扩展名添加到路径,或将文件扩展名添加到文件名。

【讨论】:

  • Stephen C - 如果我从命令行执行,它会按预期工作
  • 我发现了问题的命令 ProcessBuilder probuilder = new ProcessBuilder("sh", "-c", "ls | xargs cat > pathtonewfile");问题是执行 ls 的文件夹包含一个导致错误的文件夹。解决方法是在 ls (ls *.txt") 中添加一个过滤器
猜你喜欢
  • 2011-04-16
  • 2012-03-11
  • 2014-03-14
  • 2017-03-07
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多