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

#java #python #json #processbuilder #sys

#java #python #json #processbuilder #sys

Вопрос:

Я использовал process builder для запуска скрипта python из java. и я могу отправить данные из Java в переменную python (импортировать 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 для дальнейшего использования. Как это сделать?
У меня проблема с передачей списка в качестве аргумента метода в JAVA.
[![введите описание изображения здесь][1]][1]
[![введите описание изображения здесь][2]][2]
Как передать переменную (возвращаемую переменную в def MatchSearch() в python) в ПЕРЕМЕННУЮ JAVA?

Ответ №1:

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

Ответ №2:

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

Комментарии:

1. я могу использовать только process builder. Jython библиотека слишком ограничена

2. @HiPownedBi У меня та же проблема:/ Тогда синтаксический анализ — единственный вариант, которого я боюсь