转载来源: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) 都暂未实践