передать результат данных из python в переменную Java с помощью построителя процессов

Я использовал построитель процессов для запуска скрипта Python из java. и я могу отправить данные из Java в переменную python (import sys для получения данных из Java). и распечатайте результат python в java. Например:

public static void main(String a[]){
try{

int number1 = 100;
int number2 = 200;
String searchTerm="water";

ProcessBuilder pb = new ProcessBuilder("C:/Python27/python","D://my_utils.py",""+number1,""+number2,""+searchTerm);
Process p = pb.start();

BufferedReader bfr = new BufferedReader(new InputStreamReader(p.getInputStream()));

System.out.println(".........start   process.........");  
String line = "";     
while ((line = bfr.readLine()) != null){
    System.out.println("Python Output: " + line);
}
System.out.println("........end   process.......");


}catch(Exception e){System.out.println(e);}
}
}

Однако я не знаю, как получить результат от python и передать результат в JAVA Variable для дальнейшего использования. Как это сделать? У меня проблема с передачей списка в качестве аргумента метода в JAVA. [![введите описание изображения здесь][1]][1] [![введите описание изображения здесь][2]][2] Как передать переменную (переменная возврата в def MatchSearch() в python) в JAVA VARIABLE?


person HiPownedBi    schedule 07.10.2016    source источник


Ответы (2)


Вы можете сохранить результат Python в формате JSON. и используйте java для чтения синтаксического анализатора файла json, чтобы получить содержимое, чтобы создать переменную.

person bob90937    schedule 10.10.2016

Насколько мне известно, вы не можете сделать это с помощью ProcessBuilder. Вы можете напечатать свою переменную на выходе и позволить Java интерпретировать ее. Или вы можете использовать какой-нибудь API, который сильнее связывает Java и Python (например, Jython).

person GreenThor    schedule 10.10.2016
comment
я могу использовать только построитель процессов. Jython библиотека слишком ограничена - person HiPownedBi; 10.10.2016
comment
@HiPownedBi У меня та же проблема:/ Тогда синтаксический анализ - единственный вариант, которого я боюсь - person GreenThor; 10.10.2016