Java Spring Boot无法在资源文件夹中找到Python脚本

时间:2019-03-14 06:47:24

标签: java python spring-boot jar

我正在尝试从Java类中调用python脚本(在资源中)。 这是我的代码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

P.S。

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

还如何在jar文件中包含python脚本以在Linux服务器上运行项目。

自最近三天以来,我一直在困扰这个问题。请提出建议。

1 个答案:

答案 0 :(得分:1)

来自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也是如此。