我试图从我的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 doc:
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
也是如此。