java process 重定向_java – ProcessBuilder重定向输出

在尝试使用ProcessBuilder在Java中启动Perl脚本并将输出重定向到日志文件时,遇到IOException错误。代码尝试通过>>>操作符将输出追加到日志文件,但引发了'No such file or directory'异常。当只传递'/myScript'时,脚本可以正常运行,但不包含重定向和环境变量设置。问题可能在于命令行参数的构造方式或者日志文件路径的正确性。
摘要由CSDN通过智能技术生成

我试图使用以下代码重定向在ProcessBuilder的帮助下启动的进程的输出

ProcessBuilder pb = new ProcessBuilder("/myScript >> /myLogFile 2>&1

Map env = pb.environment();

env.clear();

env.put("var1", "val1");

env.put("var2", "val2");

pb.redirectErrorStream(true);

Process p = pb.start();

但它失败了例外

Exception in thread “main”

java.io.IOException: Cannot run

program

“/myScript >>

/myLogFile

2>&1

error=2, No such file or directory at

java.lang.ProcessBuilder.start(ProcessBuilder.java:460)

当我传递“/ myScript”时,它工作正常

脚本是perl,任何关于它为什么失败的建议/评论?

我尝试将所有这些作为单独的参数传递,如新的ProcessBuilder(“/ myScript”,“>>”,“/ myLogFile”),它会执行,但它不会重定向到日志文件,也不会使用envVars.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值