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

问题描述 投票:0回答:1

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

附:

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

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

自从过去3天以来,我一直坚持这个问题。请建议。

java python spring-boot jar
1个回答
1
投票

来自java doc:

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

© www.soinside.com 2019 - 2024. All rights reserved.