Process p = Runtime.getRuntime().exec("sh somescript.sh &> out.txt");
我正在使用Java此命令。 该脚本运行,但它不是重定向的流文件。 此外,该文件out.txt
是没有得到建立。
该脚本,如果我在shell中运行它运行良好。
有任何想法吗?
Process p = Runtime.getRuntime().exec("sh somescript.sh &> out.txt");
我正在使用Java此命令。 该脚本运行,但它不是重定向的流文件。 此外,该文件out.txt
是没有得到建立。
该脚本,如果我在shell中运行它运行良好。
有任何想法吗?
您需要使用ProcessBuilder
重定向。
ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh");
builder.redirectOutput(new File("out.txt"));
builder.redirectError(new File("out.txt"));
Process p = builder.start(); // may throw IOException
当你运行一个命令,没有shell中运行任何shell命令或功能不可用。 使用类似&>
你需要一个外壳。 你有一个,但你不能把它传递给它。 试试吧。
Runtime.getRuntime().exec(new String[] { "sh", "somescript.sh &> out.txt" });