下面这段程序调用PING命令后PING命令不自动结束。怎样能让PING命令执行完自动结束呢。PING不结束得不到返回值。是不是jdk版本的问题 ?
代码如下:
package pda.cmd;
import java.io.PrintWriter;
import java.io.PrintStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import java.io.StringReader;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.File;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class useping {
private boolean isRunning=true;
public useping() {
}
public void run(){
}
public static void main(String[] args){
try {
System.out.println("ping 127.0.0.1");
Process proc=Runtime.getRuntime().exec("cmd /c ping 127.0.0.1");
System.out.println("ping finished");
try {
System.out.println("wait for exit");
proc.waitFor();
System.out.println("exited");
} catch (InterruptedException e) {
}
int val = proc.exitValue();
System.out.println("exitvalue is : "+val);
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
代码如下:
package pda.cmd;
import java.io.PrintWriter;
import java.io.PrintStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import java.io.StringReader;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.File;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class useping {
private boolean isRunning=true;
public useping() {
}
public void run(){
}
public static void main(String[] args){
try {
System.out.println("ping 127.0.0.1");
Process proc=Runtime.getRuntime().exec("cmd /c ping 127.0.0.1");
System.out.println("ping finished");
try {
System.out.println("wait for exit");
proc.waitFor();
System.out.println("exited");
} catch (InterruptedException e) {
}
int val = proc.exitValue();
System.out.println("exitvalue is : "+val);
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
int ch = -1;
while((ch = is.read()) >= 0);
import java.io.PrintWriter;
import java.io.PrintStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import java.io.StringReader;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.File;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
public class useping {
private boolean isRunning=true;
public useping() {
}
public void run(){
}
public static void main(String[] args){
try {
System.out.println("ping 127.0.0.1");
Process proc=Runtime.getRuntime().exec("cmd /c ping 127.0.0.1");
System.out.println("ping finished");
try {
System.out.println("wait for exit");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String instr = in.readLine();
while(!"exit".equals(instr)){
instr = in.readLine();
System.out.println(instr);
}
System.out.println("exited");
} catch (InterruptedException e) {
}
int val = proc.exitValue();
System.out.println("exitvalue is : "+val);
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
Process proc = Runtime.getRuntime().exec("cmd /c ping 127.0.0.1");
System.out.println("ping finished");
InputStream is = proc.getInputStream();
int ch = -1;
while((ch = is.read()) >= 0);
System.out.println(proc.exitValue());
}