java - 通过 processbuilder 运行脚本

标签 java scripting processbuilder

我正在尝试从 Java 程序运行 Python、Ruby、C、C++ 和 Java 脚本,有人向我推荐 Processbuilder 作为运行脚本的好方法。据我了解,Processbuilder 主要运行 native 文件(Windows 上的 .exe 等)。但是,我听说过一些关于使用 Processbuilder 运行脚本(非本地)文件的事情。不幸的是,我发现的关于这个主题的一切都非常模糊。

如果有人能阐明一种运行非 native 脚本(如 Python、Ruby 等)的方法,我将不胜感激!

最佳答案

您可以查看 ProcessBuilder documentation over at Sunoracle ,但基本上,您可以运行脚本语言的解释器并将要运行的脚本传递给它。

例如,假设您在 /home/myuser/py_script.py 中有一个脚本, 和 python/usr/bin/

class ProcessRunner
{
    public static void main(String [] args)
    {
        ProcessBuilder pb = new ProcessBuilder("/usr/bin/python", "/home/myuser/py_script.py");
        Process p = pb.start();
    }
}

一个非常基本的示例,您可以通过更改工作目录和更改环境来获得更多乐趣。

你也可以构造ProcessBuilderString数组或 List<String> 的子类型.列表中的第一项应该是您要运行的程序/可执行文件,接下来的所有项都是程序的参数。

String pbCommand[] = { "/usr/bin/python", "/home/myuser/py_script.py" };
ProcessBuilder pb = new ProcessBuilder(pbCommand);
Process p = pb.start();

关于java - 通过 processbuilder 运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4648435/

相关文章:

java - 如何防止 Gamecih 作弊?

java - StringBuilder 输出为空执行 linux echo 命令

Java:在我的程序中使用其他程序的静态方法的输出

java - 用java运行bat文件

java - 通过文件浏览器选择文件后,如何在 onActivityResult() 中使用 getContentResolver().query() 获取文件路径

java - Google Guava EventBus 对象何时被垃圾收集?

java - 使用 GIT 的 IDEA 新 gradle spring boot 项目。正确的创建顺序是什么?

Bash 命令替换 + 参数扩展

ant - 如果 exec 任务失败,如何使 ant 脚本失败

Python3 传递 Ruby 中等效的命令