I am trying to run this line of code:
Process p = Runtime.getRuntime().exec(new String[] {"nmap -sP 192.168.1.0/24", g});
The above gives this error:
Exception in thread "main" java.io.IOException: Cannot run program "nmap -sP 192.168.1.0/24": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at Test.main(Test.java:14)
However, this line of code works fine:
Process p = Runtime.getRuntime().exec(new String[] {"nmap", g});
Here are some particulars:
You should be using this code:
Process p = Runtime.getRuntime().exec(new String[] {"nmap", "-sP", "192.168.1.0/24", g});
this is equivalent to:
"nmap -sP 192.168.1.0/24".split(" ");
The first entry in the array is always the file, and anything after that is parameters. What it was doing was looking for "nmap -sP 192.168.1.0/24" as a program, with no parameters.
ProcessBuilder pb = new ProcessBuilder("nmap", "-sP", "192.168.1.0/24");
Process p = pb.start();
Basically you have to separate the program from its arguments.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.