Вызов скрипта python (часть пакета Anaconda) из Java - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь вызвать код Python из планировщика Java. В автономном режиме мы выполняем скрипт python через приглашение conda, он принимает аргументы и возвращает значение в JSON. Как мне вызвать это из Java-программы и записать вывод? Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Вы можете использовать Runtime для выполнения вашей команды. Проверьте также документ .

Вот пример, как вы можете его использовать:

Process process = Runtime.getRuntime().exec("ls -al");

StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String read;

while ((read = br.readLine()) != null) {
  sb.append(read);
}

br.close();
System.out.println(sb.toString());
0 голосов
/ 29 октября 2018

Вы должны использовать Java ProcessBuilder, чтобы открыть командную строку и выполнить ваш скрипт на python. Код должен выглядеть следующим образом (адаптирован к ОС Linux, поэтому измените командную строку, если вы используете Windows):

//create a command line to execute python script
ProcessBuilder builder = new ProcessBuilder("python", "scriptname.py", "param1", "param2", ...);
builder.redirectErrorStream(true);
Process p = builder.start();
//read output
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
    sb.append(line);
}
//convert output to JSON
Gson gson = new Gson(); 
Type type = new TypeToken<YourType>(){}.getType();
YourType obj = gson.fromJson(line, type);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...