我希望从Javas的ProcessBuilder(在Windows中)运行以下Unix命令。
$ gensky 1 21 11 | genskyvec -m 1 > skyvec_1-21-11_1.skv
所以我写了这个:
String cmd = String.format("C:\\Radiance4.2\\bin\\gensky 1 21 11 | %s -m 1 > %s\n", "C:\\Radiance4.2\\bin\\genskyvec", "C:\\Radiance4.2\\temp\\output_test.skv");
而且:
ProcessBuilder builder = new ProcessBuilder(cmd);
builder.redirectErrorStream(true);
Process process = null;
try {
process = builder.start();
System.out.println("Started Processing!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但是继续得到错误 - 找不到该程序。我有什么想法吗?
答案 0 :(得分:0)
使用directory()
将工作目录设置为C:\\Radiance4.2\\bin\\
并传递List<String>
列出cmd = new ArrayList(); cmd.add( “genskyvec”); cmd.add( “1”); cmd.add( “21”); cmd.add( “11”); //所有参数
并使用redirectOutput()
来传递>