ОПИСАНИЕ ПРОБЛЕМЫ:
Я использую java для разработки своего проекта. В процессе работы мне нужно использовать Java для вызова python.as: (windos enviroment)
String[] args1 = new String[] { "C:\\anaconda\\envs\\test\\python.exe",
"src/main/java/cn/ihep/python/testNmap.py", ipAddrs, port, scanModel };
Process pr = Runtime.getRuntime().exec(args1);
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line;
StringBuffer res = new StringBuffer();
while ((line = in.readLine()) != null) {
System.out.println(line);
res.append(line);
}
в среде Windows, моя работа в порядке!
Но позже я хочу развернуть проект в linux, поэтому мне нужно изменить интерпретатор phthon. Следующим образом: (на linux)
String[] args1 = new String[] { "python",
"src/main/java/cn/ihep/python/testNmap.py", ipAddrs, port, scanModel };
Process pr = Runtime.getRuntime().exec(args1);
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line;
StringBuffer res = new StringBuffer();
while ((line = in.readLine()) != null) {
System.out.println(line);
res.append(line);
}
в среде Linux, моя версия на Python - 2.7.5.
функция приведенного выше кода заключается в обнаружении активов с помощью Nmap (инструмент с открытым исходным кодом). Конечно, я установил в Windows и Linux. Путь следующий:
portScanner = nmap.PortScanner(nmap_search_path=('nmap', '/usr/bin/nmap', '/usr/local/bin/nmap', '/sw/bin/nmap', r'C:\Program Files (x86)\Nmap\nmap.exe'));
путь в windows: 'C: \ Program Files (x86) \ Nmap \ nmap.exe';
путь в Linux: '/usr/bin/nmap'.
Я думаю, что путь Nmap в приведенном выше коде должен быть в порядке. Может быть, я был не прав, есть ли друзья с подобными проблемами ???