我正在用Java编写一个程序,它依赖于与我的目录相同的预编译第三方JAR。在运行时,我的程序检查该文件是否存在,如果不存在则下载。然后执行它的主类。但是,生成的程序会将大量文本直接打印到控制台。有没有办法从stdout
“捕获”(并因此隐藏)此输出并将我自己的输入直接从我的父应用程序返回到stdin
?理想情况下,我希望子程序驻留在同一个JVM中,所以我想避免使用任何版本的Runtime.exec()
。
答案 0 :(得分:0)
使用Java 1.5+ ProcessBuilder
类和Process
类。请记住,如果您没有正确处理其流,该过程将会阻止。