gpt4 book ai didi

Java不会执行cmd行?

转载 作者:行者123 更新时间:2023-12-01 14:38:35 24 4
gpt4 key购买 nike

我尝试在 java 中运行这个 shell,但它从来没有工作过。

Process p = Runtime.getRuntime().exec(" cat *.java|sed '/import/d'|sed'/package/d'>>b.java ");

当我将 cmd 更改为“ls”或“open foo.java”之类的内容时,代码将起作用。

知道为什么吗?

最佳答案

问题是文件通配符模式没有通过 glob 扩展。 。因此,该模式按字面意思处理,并且找不到该文件。您需要一个诸如 bash 之类的 shell 来解释此内容:

Process p = Runtime.getRuntime().exec(new String[] { 
"bash", "-c",
"cat *.java|sed '/import/d'|sed'/package/d'>>b.java" });

请务必检查 getErrorStream 的内容.

旁白:考虑使用更方便的 ProcessBuilder它使用可变参数数组来构建命令String

关于Java不会执行cmd行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16227418/

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