Запуск файла .py в Java Eclipse - PullRequest
       159

Запуск файла .py в Java Eclipse

0 голосов
/ 07 августа 2020
            try {
                ProcessBuilder pb = new ProcessBuilder("C:\\Users\\--------\\PycharmProjects\\--------\\venv\\Scripts\\Python.exe", "---------.py");
                Process p = pb.start();
                System.out.println(p.getOutputStream());
            }
            catch(Exception e){
                System.out.println("Exception: " + e);
            }

">" Итак, я работаю над программой, которая получает информацию из API Spotify. У меня есть сценарий в python, который передает программе java нужные мне данные. К сожалению, у меня возникают проблемы с тем, чтобы eclipse запускал сам скрипт .py. Я использую ProcessBuilder, и по какой-то причине ошибок нет, но программа не выполняет сценарий python. Я новичок в интеграции нескольких языков в проект, поэтому приветствую любую помощь! Я провел часы исследований, пытаясь понять это. Я знаю, что здесь есть похожие сообщения относительно того же topi c, но ни один из ответов, похоже, не помог мне. Спасибо! "<" </p>

1 Ответ

1 голос
/ 07 августа 2020

Это это запуск скрипта, вы просто не получаете результат, потому что вы сделали два неправильно. Сначала см. Javado c для Process.getOutputStream:

Возвращает выходной поток, подключенный к обычному входу процесса. Вывод в поток передается по конвейеру на стандартный ввод процесса, представленного этим объектом Process.

Это не то, что вам нужно. Чтобы получить вывод из , процесс USE Process.getInputStream:

Возвращает входной поток, связанный с обычным выходом обработать. Поток получает данные из стандартного вывода процесса, представленного этим объектом Process. [плюс stderr в случае объединения]

Во-вторых, System.out.println(stream) (для входного потока) не печатает данные, которые могут быть получены в потоке, он печатает только поток объект (как внутреннее имя класса, atsign, хэш-код). Чтобы отобразить данные из процесса python (т.е. скрипта), вы должны прочитать его из потока, а затем вывести прочитанные данные. Примеры этого есть повсюду; Не могу представить, как можно часами не найти хотя бы сотню. Попробуйте, например: читать вывод из java exe c Чтение входящего потока из Java Процесс java Обработка, getInputStream, чтение только последней строки Невозможно получить getInputStream из Runtime.getRunTime.exe c () Печать Java InputStream из процесса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...