java调用python程序 egg_Java代码中调用python程序

Java代码中调用python程序

制作人:全心全意

使用jython调用python程序(不可使用第三方库)

导入依赖jar包

maven导入:

org.python

jython-standalone

2.7.0

java调用示例:

package com.zq.jpy;

import java.io.UnsupportedEncodingException;

import org.python.core.Py;

import org.python.core.PyFunction;

import org.python.core.PyInteger;

import org.python.core.PyObject;

import org.python.core.PyString;

import org.python.util.PythonInterpreter;

public class Jpy {

public static void main(String[] args) {

// -Dpython.console.encoding=UTF-8

// 直接执行python命令

System.out.println("=============直接执行python命令==============");

PythonInterpreter interpreter = new PythonInterpreter();

interpreter.exec("a='hello world'; ");

interpreter.exec("print(a);");

// 执行python脚本

System.out.println("=============执行python脚本==============");

interpreter.execfile("E:/jpy.py"); // 该py脚本中不可包含第三方库

// 调用python脚本中的函数

System.out.println("=============调用python脚本中的函数==============");

// interpreter.execfile("E:/jpy.py"); // 该py脚本中不可包含第三方库

PyFunction pyFunction = interpreter.get("add", PyFunction.class);

PyObject pyObject1 = pyFunction.__call__(new PyInteger(5), new PyInteger(3)); // 调用函数

System.out.println(pyObject1);

PyObject pyObject2 = pyFunction.__call__(new PyString("wo"), new PyString("ni")); // 调用函数

System.out.println(pyObject2.toString());

PyObject pyObject3 = pyFunction.__call__(Py.newStringUTF8("我"),

Py.newStringUTF8("你")); // 调用函数中使用了中文

try {

System.out.println(

new String(pyObject3.toString().getBytes("iso8859-1"), "utf-8")); // 对返回的中文解码在编码

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

python程序示例:

#!/usr/bin/env python

# -*- encoding: utf-8 -*-

print("我是python脚本")

def add(a,b):

print(a+b)

return a + b;

使用Runtime.getRuntime调用python程序(可以使用第三方库)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值