如何从java中触发用python编写的代码?

时间:2016-01-28 06:28:44

标签: java python

我有一个用python编写的脚本,我想在JAVA中完成一个进程后才触发它。 我怎么能触发它?

2 个答案:

答案 0 :(得分:0)

不确定我是否正确理解了您的问题,但如果您可以从控制台调用Python可执行文件并且只想在Java中捕获其输出,则可以使用Java Runtime类中的exec()方法。

Process p = Runtime.getRuntime().exec("python yourapp.py");

您可以在这里阅读如何实际读取输出:

http://www.devdaily.com/java/edu/pj/pj010016

还有一个Apache库(Apache exec项目)可以帮助您解决这个问题。你可以在这里阅读更多相关信息:

http://www.devdaily.com/java/java-exec-processbuilder-process-1

http://commons.apache.org/exec/

答案 1 :(得分:0)

另一种更新的方法是使用ProcessBuilder类,这为参数提供了更多的结构。 您可以阅读ProcessBuilder文档here

class test2 {
    public static void main(String a[]) {
        try {

            String prg = "import sys\nprint int(sys.argv[1])+int(sys.argv[2])\n";
            BufferedWriter out = new BufferedWriter(new FileWriter("test1.py"));
            out.write(prg);
            out.close();
            int number1 = 10;
            int number2 = 32;

            ProcessBuilder pb = new ProcessBuilder("python", "test1.py", ""
                    + number1, "" + number2);
            Process p = pb.start();

            BufferedReader in = new BufferedReader(new InputStreamReader(
                    p.getInputStream()));
            int ret = new Integer(in.readLine()).intValue();
            System.out.println("value is : " + ret);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

为了更好地理解,请参阅this post.