我在用runtime.exec启动进程后,发现进程被堵塞。在网上查找后,找到解决办法,原来是进程输出
所以将程序修改如下:
class XdmcpOutThread extends Thread{
private InputStream out=null;
XdmcpOutThread(InputStream outout)
{
out=outout;
}
public void run()
{
if(out!=null)
{
byte[] outStr=new byte[1024];
int len=0;
try {
while((len=out.read(outStr))!= -1)
{
System.out.print(new String(outStr,0,len));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class XdmcpThread extends Thread {
private int n;
private String name;
private String pwd;
private String ip;
private String host;
XdmcpThread(int num, String username, String password, String ip,
String localip) {
n = num;
name = username;
pwd = password;
this.ip = ip;
host = localip;
}
public void run() {
Process p;
try {
p=Runtime.getRuntime().exec("abc.exe");
new XdmcpOutThread(p.getInputStream()).start();
new XdmcpOutThread(p.getErrorStream()).start();
proList.add(p);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
呵呵,献丑啦!