Python调用Java(基于Ubuntu 18.04)

Posted weosuper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于Python调用Java(基于Ubuntu 18.04)的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu18.04下Python Web环境搭建

Ubuntu18.04 运行 Gradle 4.9

基于ubuntu16.04配置opencv3.1+python3.5

基于Django-admin 二次开发(一)环境搭建

Ubuntu 18.04 基于NVIDIA 2080安装TensorFlow-GPU 1.13.1

ubuntu18.04下Kafka安装与部署