Runtime.getRuntime()。exec(“ C: cygwinbinbash.exe”)没有要读取的输入

Runtime.getRuntime()。exec(“ C: cygwinbinbash.exe”)没有要读取的输入,第1张

Runtime.getRuntime()。exec(“ C: cygwin bin bash.exe”)没有要读取的输入

就Java而言,据我所知,仅当它作为脚本运行时,才可以通过管道将bash的输出(或输入)通过管道传递给bash,而不是当它作为交互式shell运行时(在这种情况下,只能将cmd参数传递给它)。

换句话说,如注释中所述,当您从cmd运行bash时,您会看到输出,但它包含在bash进程中,bash发送回父cmd进程不是输出。

关于javac进程,它实际上是将输出发送到错误流。尝试从CMD运行

javac 1>null
javac 2>null
,你会看到其中的差别。
您看过这里的api
吗?您可以尝试使用ProcessBuilder并将错误流重定向回主要输入流,以这种方式处理流程会容易得多。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5506735.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存