java - 使用 Java PrcoessBuilder 运行 Python 远程文件

标签 java processbuilder

我正在尝试使用带有以下代码的 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/

相关文章:

java - ProcessBuilder Java 启动成功但 Tomcat 启动失败

使用带有输入和输出流的 ProcessBuilder 的 Java 程序不起作用

Java ClassLoader - 强制重新加载已经加载的类

java - 凯撒密码 Java

java - 处理流程流的正确方法

java - 如何使用 Mac 在 netbeans 中打开 .txt 文件?

java - 如何使用 ProcessBuilder 在 Java 中启动带空格的快捷方式

java - 删除从 zip 文件读取的 XML 文件中的空格

java - 使用 id 生成器方法向数据库插入记录时,哪种数据类型更好?

java - 检查返回类型扫描仪对象java两个输入