知识改变世界
生活可以更简单
注册 登录
***文章***

java如何调用Python基于eclipse

作者:java哥 类型:转载 时间:2017-08-11

Java程序员通过Jython可以实现直接执行Python语句、执行Python脚本,还能实现执行Python函数,与Python函数进行变量交互。

很多时候,可以通过Python进行计算模块的编写,Java负责逻辑应用的编写,二者结合起来事半功倍。下面通过两段代码简单介绍一下如何通过Jython来实现Java调用Python并执行结果。

配置Eclipse: 下载jython-standalone-2.7.0.jar,Eclipse下导入jar包

jython在Eclipse控制台会出现”Failed to install ”: java.nio.charset.UnsupportedCharsetException: cp0.”的错误,解决方法:

Run → Run Configurations,选择第二个页签Arguments,在VM arguments中添加-Dpython.console.encoding=UTF-8

Python程序编写(python_func.py):
  1. #coding: utf-8
    def add(a, b):
        return a+b
    print add(1, 2)
    

Java程序编写(HelloWorld.java):

  1. package helloworld;
    import org.python.util.PythonInterpreter;
    import org.python.core.PyFunction;
    import org.python.core.PyInteger;
    import org.python.core.PyObject;
    public class HelloWorld
    {
        public static void main(String[] args)
        {
            System.out.println("Hello World!");
            // 开启Python解释器
            PythonInterpreter interpreter = new PythonInterpreter();
            // Java直接执行Python语句
            interpreter.exec("print 'Hello World!'");
            // Java执行Python脚本
            String basePath = HelloWorld.class.getResource("").getPath();
            interpreter.execfile(basePath+"python_func.py");
            // Java执行Python函数
            PyFunction func = (PyFunction) interpreter.get("add", PyFunction.class);
            int a = 1, b = 2;
            PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));
            System.out.println(pyobj.toString());
            // 关闭Python解释器
            interpreter.close();
        }
    }    
    

运行结果:

  1. Hello World!
    Hello World!
    3
    3
    

希望大家多多支持simple求知网。

希望本文所述对大家程序设计有所帮助。

***其他版块***

本站为编程爱好者提供计算机电子书免费资源下载,定期更新!

***其他***

更多内容,敬请期待!谢谢!!!