Java - 为传统控制台程序创建高级接口

时间:2015-06-29 14:20:04

标签: java interface runtime exec

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

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

有没有什么方法可以让控制台程序保持运行,而无需在界面中保持状态反复运行程序,并在每次用户输入输入时浏览控制台程序。

这是我试图运行的代码。第一个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程序运行时有没有办法让控制台程序保持运行?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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

在上面的陈述中,将/ C改为/ k

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

这是/ k的意思(excerpt from here

  

/ k:执行string指定的命令并继续。