创建模拟为控制台(Java)的GUI应用程序

时间:2013-01-03 19:08:13

标签: java process console external processbuilder

我最近开始了一个项目,我需要在父进程中启动外部进程。但是,由于外部进程使用System.console(),因此它无法正常运行,因为它返回一个null对象。外部和父应用程序都是用java编写的,外部进程不可能以任何方式修改(因为它是由第三方生成的)

正在处理进程对象的输入和输出流,并且正在将stderr流重定向到输出。

我的问题是:有没有办法“模拟”控制台,以便外部子进程的System.console()调用返回一个挂钩到我的主(父)应用程序的有效控制台对象?

以下流程构建器代码:

final ProcessBuilder Builder = new ProcessBuilder("\"" + System.getProperty("java.home") + "\\bin\\java.exe\"", InitMemArg, MaxMemArg, "-jar", "\"" + MCServer.getName() + "\"");
Builder.redirectErrorStream(true);

1 个答案:

答案 0 :(得分:0)

在开始第三方流程之前,您似乎必须创建一个创建Console类的线程,该类在第三方应用程序中显示为控制台。

此控制台还必须与您的GUI应用程序通信。