您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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

关于javac进程,它实际上是将输出发送到错误流。尝试从CMD运行javac 1>nulljavac 2>null,你会看到其中的差别。 您看过这里的api 吗?您可以尝试使用ProcessBuilder并将错误重定向回主要输入流,以这种方式处理流程会容易得多。

其他 2022/1/1 18:26:25 有440人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶