我正在编写一个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:执行字符串指定的命令并继续。