Я выполняю Nmap на Java, который сохраняет информацию о сети в файл.Код выглядит так:
Process p = Runtime.getRuntime().exec(new String[] {"nmap", "-O", "-oX", nmapFileLocation, ipStr+"/24"});
BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
String line = null; while ((line = in.readLine()) != null) {}
p.waitFor();
OutputStream os = p.getOutputStream(); os.flush();
os = p.getOutputStream(); os.flush();
Кажется, мне нужно прочитать все строки, чтобы заставить его работать (я имею в виду цикл while);это работало для небольших сетей.Я пробовал несколько вещей, чтобы заставить его работать в больших сетях, но он зависает.
Например, в настоящее время я запускаю приложение Java, которое выполняет nMap.Он работает в течение получаса и висит там, где находятся строки кода nmap.Я наблюдал (много раз), что если я открою созданный файл во время работы приложения Java, я вижу только первые ~ 12 строк во вновь созданном файле.Однако, как только я закрываю приложение Java, все ~ 1600 строк файла становятся видимыми.Я готов экспериментировать с разными подходами.