就Java而言,据我所知,仅当它作为脚本运行时,才可以通过管道将bash的输出(或输入)通过管道传递给bash,而不是当它作为交互式shell运行时(在这种情况下,只能将cmd参数传递给它)。
换句话说,如注释中所述,当您从cmd运行bash时,您会看到输出,但它包含在bash进程中,bash发送回父cmd进程不是输出。
关于javac进程,它实际上是将输出发送到错误流。尝试从CMD运行
javac 1>null和
javac 2>null,你会看到其中的差别。
您看过这里的api
吗?您可以尝试使用ProcessBuilder并将错误流重定向回主要输入流,以这种方式处理流程会容易得多。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)