Python调用Java(基于Ubuntu 18.04)


最近实习,需要使用Python编程,其中牵涉到一些算法的编写。由于不熟悉Python,又懒得从头学,而且要写的算法自己之前又用Java实现过,就想着能不能用Python调用Java。经过查找资料,方法如下:

Step 1——安装JPype扩展包

想要通过Python调用Java,需要借助JPype组件,安装方式如下:

# Python 2.7
pip install jpype1
# Python 3.*
# pip3 install jpype

Step 2——Java文件打包为JAR

安装好后,需要将需要调用的Java文件打包为JAR格式用于调用,示例代码如下:

// testDemo.java
public class testDemo {
    public String inputTest(String input) {
        return "Input content: " + input;
    }
    public int calculate(int a,int b) {
        return a + b;
    }
}

打包JAR

# 编译Java程序
javac testDemo.java
# 打包成JAR
jar cvf testDemo.jar testDemo.class

Step 3——Python调用

在得到JAR包后,就能通过Python进行调用了,示例代码如下:

# -*- coding:utf-8 -*-
from jpype import *
import os

# 启动Java环境
startJVM("/usr/local/jdk1.8.0_211/jre/lib/amd64/server/libjvm.so", "-ea", \
    "-Djava.class.path=%s" % (os.getcwd() + "/Test.jar"))

# 加载自定义的Java Class
JClass = JClass("testDemo")
jc = JClass()
    
# 获取Java标准库打印函数
jprint = java.lang.System.out.println    
# 调用函数,并输出返回值
jprint(jc.input("aloha"))
jprint(jc.calculate(1, 2))
    
# 关闭Java环境
shutdownJVM()

2019.06.06 22:47——Weo

 

posted @ 2019-06-06 22:57  WeoSuper  阅读(511)  评论(0编辑  收藏  举报