Python调用jar包-jpype模块(续)

2022-06-13 12:13:52 浏览数 (1)

一:安装Java环境

首先我们来安装Java环境,Java SE Development Kit 8 - Downloads官网下载,jdk安装文件,我习惯Java8。

运行安装文件,下一步。

更改jdk的安装路径。

更改jdk的安装路径。

添加环境变量,新建环境变量JAVA_HOME值为安装的jdk路径,Path环境变量中添加%JAVA_HOME%bin值。

确认以后打开cmd窗口或者PowerShell窗口,输入java -version和javac -version,如果正常输出则环境安装好了。

二:安装Java编译器

官网安装idea下载 IntelliJ IDEA:JetBrains 功能强大、符合人体工程学的 Java IDE,可以免费试用三十天,学生党可以做学生认证。

创建一个纯java项目,新建一个Testjpype.java文件。

java运行需要主类,也就是入口函数。

代码语言:javascript复制
public class Testjpype {
    public  void sayhello(){
        System.out.println("hello jpype");
    }
    public static void main(String[] args) {
        Testjpype testjpype = new Testjpype();
        testjpype.sayhello();
    }
}

创建一个mymanifest.mf文件用来写打jar包的入口类运行以下命令。

代码语言:javascript复制
javac .Testjpype.java #生成class文件
jar -cvfm Testjpype.jar .mymanifest.mf .Testjpype.class #将Testjpype.class打包为Testjpype.jar指定描述文件为mymanifest.mf
java -jar .Testjpype.jar #运行jar包

也可以通过idea编译器打包为jar文件。打开File—project Structure,Artifacts添加jar。

配置jar信息。

点击 Build ----- Build Artifacts,build他。

生成了jar包。

复制java包到Python项目下。

代码语言:javascript复制
#-*- codeing = utf-8 -*-
#@Time: 2021/8/20 23:23
#@Author: 怪盗LLYL
#@File: hellojpype.py
#@Software: PyCharm
from jpype import *
import jpype

class hellojpype(object):
    def sayhello(self):
        jvmPath = jpype.getDefaultJVMPath() #我们配置了java环境变量所以可以直接获取jvm.dll路径了
        # jvmPath = r'F:workspacepythonWorkjre-8u301-windows-x64jre1.8.0_301binserverjvm.dll' #'r'是防止字符转义的
        jpype.startJVM(jvmPath,'-ea','-Djava.class.path=Tesjar.jar') #启动jvm 设置了jar路径
        myjar = jpype.JClass('Testjpype') #指定主类
        myprint = myjar() #实例化
        myprint.sayhello() #调用sayhello类
        jpype.shutdownJVM() #关闭jvm
if __name__ == '__main__':
    myjp=hellojpype()
    myjp.sayhello()

运行。

总结,如果想用其他人的jar包可以使用这种方法,我这台电脑运行很快,放工位那台运行很慢不知道是不是慢在了启动jvm,我觉得如果知道逻辑不如用Python重写一遍。

0 人点赞