我正在尝试使用带有以下代码的 java Process builder 执行 python 文件(远程)。
List<String> commands = new ArrayList<String>();
commands.add("/bin/sh");
commands.add("-c");
commands.add("\"python <(curl <remote python file>\"");
ProcessBuilder builder = new ProcessBuilder(commands);
builder.redirectErrorStream(true);
及其给予
/bin/sh: python <(curl ): No such file or directory
尝试使用命令插值(curl 前面的 $ 和 python 命令未用双引号引起来)
commands.add("/bin/sh");
commands.add("-c");
commands.add("python <$(curl <remote python file>)");
这是 throw
ambiguous redirect error
最佳答案
Java 几乎可以做 curl
可以做的所有事情。只需下载包含代码的文件:
URL remotePythonFile = new URL("http://example.com/remotefile.py");
Path localPythonFile = Files.createTempfile(null, ".py");
try (InputStream remoteStream = remotePythonFile.openStream()) {
Files.copy(remoteStream, localPythonFile,
StandardCopyOption.REPLACE_EXISTING);
}
ProcessBuilder builder =
new ProcessBuilder("python", localPythonFile.toString());
关于java - 使用 Java PrcoessBuilder 运行 Python 远程文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54264737/