欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

python java 调用

程序员文章站 2022-05-01 08:37:45
...
<dependency>
    <groupId>jython</groupId>
    <artifactId>jython</artifactId>
    <version>2.1</version>
 </dependency>
package com.curiousby.python.demo;
import org.python.core.PyFunction;
import org.python.core.PyInteger;
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
/**
 * @author baoyou E-mail:curiousby@163.com
 * @version 2016年8月1日 下午1:05:36
 *<pre>
 <dependency>
    <groupId>jython</groupId>
    <artifactId>jython</artifactId>
    <version>2.1</version>
 </dependency>
 *</pre>
 * desc: ...
 */
public class PythonByJava {
public static void main(String[] args) {
PythonInterpreter interpreter = new PythonInterpreter();  
        interpreter.execfile("I:\\cache\\ea-ws\\DemoJava\\conf\\Test1.py");  
        PyFunction func = (PyFunction)interpreter.get("sum",PyFunction.class);
        int a = 1, b = 2 ; 
        PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));  
        System.out.println(pyobj.toString()); 
}
}

结果:

3

其他两种 调用方法:

a) 直接执行Python脚本代码

PythonInterpreter interpreter = new PythonInterpreter();  
interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");   ///执行python脚本

b)使用Runtime.getRuntime()执行脚本文件

Process proc = Runtime.getRuntime().exec("python  D:\\demo.py");  
proc.waitFor();