Java Spring Boot не может найти Python Script в папке ресурсов - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь вызвать Python Scripts (в ресурсах) из моего класса Java.Это мой код spinnet

        String res = "/Scripts/Brokers/__init__.py";

        URL pathUrl = this.getClass().getResource(res);
        String path = "";
        if(pathUrl != null)
            path = pathUrl.toString();

        ProcessBuilder pb = new ProcessBuilder("/usr/bin/python3.6", path);

ProcessBuilder выдает ошибку No such file or directory.

PS

value of path = "file:/home/path-to-project/project-name/out/production/resources/Scripts/Brokers/\__init__.py"

Также как включить скрипты Python в jarфайл для запуска проекта на сервере Linux.

Я застрял в этой проблеме в последние 3 дня.Пожалуйста, предложите.

1 Ответ

1 голос
/ 14 марта 2019

Из документа Java:

https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

Запуск нового процесса, который использует рабочий каталог по умолчанию и среда проста:

 Process p = new ProcessBuilder("myCommand", "myArg").start();

В общем, вы собираетесь запустить подпроцесс, который будет

  • запустить интерпретатор Python
  • со скриптом python, который вы указали в качестве аргумента.

Путь к вашему сценарию должен быть обычным путем, который ваша ОС может понять, поэтому вы не должны указывать URI? как путь (protocol:address/path).

if (path.contains(":"))
    path = (path.split(":"))[1];

Также обратная косая черта \ до __init__.py выглядит подозрительно.

Вы должны быть в состоянии запустить ls /home/path-to-project/project-name/out/production/resources/Scripts/Brokers/__init__.py и посмотреть файл, то же самое относится и к ls /usr/bin/python3.6.

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