我正在尝试从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服务器上运行项目。
自最近三天以来,我一直在困扰这个问题。请提出建议。
答案 0 :(得分:1)
来自Java文档:
https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html
启动一个使用默认工作目录和 环境很简单:
Process p = new ProcessBuilder("myCommand", "myArg").start();
因此,基本上,您将派生一个子流程
脚本的路径应该是操作系统可以理解的普通路径,因此您不应该提供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
也是如此。