Java调用Python代码

来源:互联网 发布:淘宝肌肉科技真的吗 编辑:程序博客网 时间:2024/06/11 09:03

Java调用Python代码

Java调用Python代码有两种方式:一种是Java利用第三方的jar包(jython.jar)来执行python代码,另外一种方式为Java 利用Runtime.getRuntime().exec()的方式执行python,前者的python代码中不能使用第三方的python库,而后者的python代码中则可以使用第三方的库,所以推荐第二种方式

1.1 jython.jar方式

由于该种方式有局限性,在此不详细阐述。

1.2 Runtime.getRuntime().exec()的方式

如代码所示,java代码为:

import java.io.BufferedReader;import java.io.InputStreamReader;public class JavaRunPython {    public static void main(String[] args) {        try {            System.out.println("start java");            // 需要传入python文件的参数            String p1 = "name", p1 = "sex";              System.out.println("start java call python...");            //注意路径必须为绝对路径,否则会报错            String[] arg = new String[] { "/usr/bin/python", "/home/xx/workspace4Python/test.py", p1, p2 };              Process pr = Runtime.getRuntime().exec(arg);            BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));              String line;              while ((line = in.readLine()) != null) {                  // 读取python代码的输出                System.out.println(line);             }              in.close();              pr.waitFor();              System.out.println("java call python end");             System.out.println("java end");         } catch (Exception e) {            e.printStackTrace();        }    }}

python代码为:

# -*- coding: utf-8 -*-if __name__ == "__main__":    import sys     print sys.argv[1]      print sys.argv[2]  

结果为:
结果

参考文献

[1]jython方式调用python代码

原创粉丝点击