Java-为遗留控制台程序创建高级接口



我正在编写一个java应用程序,该应用程序假定为一个旧控制台程序创建一个接口。

我一直在尝试使用Runtime.exec来运行我的控制台程序,但遇到了问题,因为Runtime.eexec只执行命令,不保持控制台程序运行。

有没有什么方法可以让控制台程序保持运行,而不必保持界面中的状态来一遍又一遍地运行程序,并在每次用户输入输入时浏览控制台程序。

这是我试图运行的代码。第一个exec工作正常,但当我试图加载程序时,它给了我一个错误,即它无法运行程序"加载"

Runtime rt = Runtime.getRuntime();
String[] cmd = {"cmd.exe", "/C", "progam_in_PATH", "-Arg"};
Process p = rt.exec(cmd);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
print(getOutput(in,1000));
p = rt.exec("load path/to/file/to/load.txt");
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
print(getOutput(in,1000));

所以我的问题是,在我的java程序运行时,有没有办法让控制台程序保持运行?

感谢您的帮助。

String[] cmd = {"cmd.exe", "/C", "progam_in_PATH", "-Arg"};

在上述声明中,将/C更改为/k

String[] cmd = {"cmd.exe", "/k", "progam_in_PATH", "-Arg"};

以下是/k的意思(摘录自此处)

/k:执行字符串指定的命令并继续。

最新更新