java调用console程序的问题
我用如下代码调用一个console程序netport.exe 该程序搜索本地网口并提示用户选择一个网口,之后执行操作。netport.exe的源程序已经找不到了所以只能用java调用,但是在运行完下面的java代码后,命令行并没有提示用户输入输入网口编号,也就是netport.exe没有按照预想的方式运行。请问下这是怎么回事?
public class transferExe {
public static void main(String[] args) {
openMyExe();
}
// 2.0调用其他的可执行文件,例如:自己制作的exe,或是下载安装的软件
public static void openMyExe() {
Runtime rn = Runtime.getRuntime();
Process p = null;
try {
//p = rn.exec("\"../netport.exe\"");
p = rn.exec("../netport.exe");
} catch (Exception e) {
System.out.println("Error my exec ");
}
}
}
------解决方案--------------------
该运行程序完全是隐藏在后台的,如果你还需要该程序能跟用户进行交互,你需要处理Runtime的输入输出。
rn.getOutputStream() 这个可以获得该程序的输入,相当于模拟console发送信息给程序;
rn.getInputStream() 这个可以获得该程序的输出,相当于得到程序显示在console上的内容。
不太容易,建议Google下样例。