Python 调用java接口

 

转载来源:https://www.cnblogs.com/mumuli/p/5806963.html  并在此基础上做更详细的说明

 

python 调用java的接口,具体实现步骤:

前提下载好JPyte1包,命令: pip install JPype1   #官网地址的下载地址
提前创建好PythonDiaoJava.py文件  

1.在py的当前路径下 创建com文件夹
2.在com文件夹下面 新建Test.jar文件  并输入测试代码,如下:
package com;
public class Test {
    public String run(String str){
        return str;
    }
}
3.在./com的文件夹下 执行javac Test.jar
    脚本説明:
    javac:是编译命令,将java源文件编译成.class字节码文件。将生成Test.class文件。
     java:是运行字节码文件-Test.class;由java虚拟机对字节码进行解释和运行。
          例如:java Test
4.在com的上级目录下(即py代码所在的路径)执行 jar cvf test.jar com
    参数说明:利用com目录创建test.jar包,并显示创建过程
        -c  创建一个jar包
        -f 指定jar包的文件名
        -v  生成详细的报造,并输出至标准设备
5.在PythonDiaoJava.py文件中输入以下代码:
import jpype
import os
print(os.path.abspath('.'))
jarpath = os.path.join(os.path.abspath('.'), 'test.jar') #test.jar的路径 不确定的话,打印下。 踩过坑 在test.jar前面多加了\\导致报错 不需要加\\,会自动拼接的
print(jarpath)
jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % jarpath)
Test = jpype.JClass('com.Test')
# 或者通过JPackage引用Test类
# com = jpype.JPackage('com')
# Test = com.Test
t = Test()
res = t.run("hello world")
print (res)
jpype.shutdownJVM()
6.执行成功

 

 7.思考:

python 如何通过http的request 方式调用java 接口?
(1).rest 服务
(2).将java 代码部署到容器中,通过http的方式调用
以上(1)和(2) 都暂未实践

 

posted @ 2020-12-07 21:18  eosclover  Views(3850)  Comments(0Edit  收藏  举报