import java.io.*; public class Hello {
Process process;
Thread in;
Thread out;
public Hello(Process process) {
this.process = process;
final InputStream inputStream = process.getInputStream();
// final BufferedReader r=new BufferedReader(new InputStreamReader(inputStream));
final byte[] buffer = new byte[1024];
out = new Thread() {
String line;
int lineNumber=0;
public void run() {
try {
while (true) {
int count = inputStream.read(buffer);
System.out.println(lineNumber+":"+new String(buffer, 0, count-1));
// line=r.readLine();
// System.out.println(lineNumber+":"+line);
// lineNumber++;
}
}
catch (Exception e) { }
}
};
final BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
final OutputStream outputStream = process.getOutputStream();
in = new Thread() {
public void run() {
try {
while (true) {
outputStream.write( (reader.readLine()+"\n").getBytes());
outputStream.flush();
}
}
catch (Exception e) { }
}
};
} public void startIn() {
in.start();
} public void startOut() {
out.start();
} public void interruptIn() {
in.interrupt();
} public void interruptOut() {
out.interrupt();
} public static void main(String[] args) {
try {
//String[] aa={"version"};
Hello command = new Hello(Runtime.getRuntime().exec("java -version"));
command.startIn();
command.startOut();
}
catch (Exception e) {
e.printStackTrace();
}
} } 代码如上:如果在主方法里输入"java",在控制台上可以打出相应的数据,但是加了参数后如"java -version",则程序不能执行出想要的结果.哪位高手帮忙解决一下???
Process process;
Thread in;
Thread out;
public Hello(Process process) {
this.process = process;
final InputStream inputStream = process.getInputStream();
// final BufferedReader r=new BufferedReader(new InputStreamReader(inputStream));
final byte[] buffer = new byte[1024];
out = new Thread() {
String line;
int lineNumber=0;
public void run() {
try {
while (true) {
int count = inputStream.read(buffer);
System.out.println(lineNumber+":"+new String(buffer, 0, count-1));
// line=r.readLine();
// System.out.println(lineNumber+":"+line);
// lineNumber++;
}
}
catch (Exception e) { }
}
};
final BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
final OutputStream outputStream = process.getOutputStream();
in = new Thread() {
public void run() {
try {
while (true) {
outputStream.write( (reader.readLine()+"\n").getBytes());
outputStream.flush();
}
}
catch (Exception e) { }
}
};
} public void startIn() {
in.start();
} public void startOut() {
out.start();
} public void interruptIn() {
in.interrupt();
} public void interruptOut() {
out.interrupt();
} public static void main(String[] args) {
try {
//String[] aa={"version"};
Hello command = new Hello(Runtime.getRuntime().exec("java -version"));
command.startIn();
command.startOut();
}
catch (Exception e) {
e.printStackTrace();
}
} } 代码如上:如果在主方法里输入"java",在控制台上可以打出相应的数据,但是加了参数后如"java -version",则程序不能执行出想要的结果.哪位高手帮忙解决一下???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货