Это именно мой код. Команда Ping быстро заканчивается, поэтому, если я подожду несколько секунд, у меня будет результат. Tshark захватывает сеть, поэтому не заканчивается.
Моя проблема в том, что чтение делает паузы.
Это мой код:
String cmd = "c:\\\"Program Files\"\\Wireshark\\tshark.exe -T fields -e frame.len host"+ ipSrc +" and dst "+ ipDst;
String[] command = {"cmd.exe", "/C", cmd};
try {
final Process proc = Runtime.getRuntime().exec(command);
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(proc.getInputStream()));
String line = "";
try {
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} finally {
reader.close();
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
Я также пытался использовать поток для записи в терминале, но это та же проблема:
new Thread() {
@Override
public void run() {
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(
process.getInputStream()));
String line = "";
try {
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} finally {
reader.close();
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}.start();