使用bufferreader在java代码中读取--traceroute命令时搜索特定单词
我试图从traceroute输出中搜索单词使用bufferreader在java代码中读取--traceroute命令时搜索特定单词,java,process,nmap,Java,Process,Nmap,我试图从traceroute输出中搜索单词“hop”,但不知怎么的,它并没有在控制台上显示该行。请告诉我哪里出了问题 这是我的密码: import java.io.*; public class TestExec { public static void main(String[] args) { try { String[] cmdarray = { "nmap", "--traceroute", "nmap.org" }; Process p = Run
“hop”
,但不知怎么的,它并没有在控制台上显示该行。请告诉我哪里出了问题
这是我的密码:
import java.io.*;
public class TestExec {
public static void main(String[] args) {
try {
String[] cmdarray = { "nmap", "--traceroute", "nmap.org" };
Process p = Runtime.getRuntime().exec(cmdarray);
BufferedReader in = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
if (line.contains("hop")) {
System.out.println(line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
有几件事:
root
身份运行nmap
。你在这样做吗nmap--traceroute nmap.org
中,没有包含小写单词“hop”
的行。因此,即使您以root用户身份运行此程序,您可能也不会得到太多李>
exec(“cmdarray”)代码>应该是exec(cmdarray)代码>抱歉,我发布错误,但使用exec(cmdarray)执行。仍然不起作用。数组初始化后缺少分号。此外,打印stacktrace也没用。你可以很容易地摆脱try-catch,只抛出IOException-同样EFFECT@sam-你们并没有得到任何输出,但程序仍在运行,对吗?你们是否直接在命令提示符下尝试,nmap--traceroute nmap.org,你们是否得到了任何结果?我将添加:-我设法从命令行(OSx)运行了这个程序,但我觉得每个操作系统都不一样。我一直在跑步,直到我还没有终止它。非常感谢。这是我的错误,我给了搜索词“Hop”。它应该是“Hop”。现在可以了。@sam如果你觉得我的答案对你有帮助,请单击答案旁边的复选标记。