python调⽤java开发接⼝
有⼀个需求, 需要调⽤java的jar包, 因为擅长⽤python写程序, 那么就需要个python包,调⽤java
选来选取, 到了JPype
其他包不要好⽤,有些需要额外在其他地⽅启动jvm等.
遇到的最⼤困难就是安装
参考官⽹
pip install JPype1 出错
按官⽹建议
pip install python-dev 后,再安装也不⾏
download whl
pip install xxxx.whl 也不⾏,具体错不不描述了
解决办法:
upgrade  pip
pip install .....whl 成功
具体code
=============python ===========================
import  jpype
import jpype.imports
import os.path
jvmPath = DefaultJVMPath()  # 获得系统的jvm路径
jarpath = os.path.join(os.path.abspath('.'), 'javajar/md5Encoder.jar')
dependency = os.path.join(os.path.abspath('.'), 'javajar')
jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % jarpath, "-dirs=%s" % dependency)  # 当有依赖的JAR包存在时,⼀定要使⽤-dirs参数进⾏引⼊
jpype.java.lang.System.out.println("hello world")
try:
aa = jpype.JClass('org.loushang.ding.BspEncoder')
except Exception as e:
print(e)
BspEncoder = jpype.JClass('org.loushang.ding.BspEncoder')
Md5PasswordEncoder = jpype.JClass('org.loushang.ding.Md5PasswordEncoder')
bspEncoder = BspEncoder()
md5PasswordEncoder=Md5PasswordEncoder()
bspEncoder.setEncoder(md5PasswordEncoder)
dePassword('aaa')
print(res)
jpype.shutdownJVM()  # 关闭jvm
===========end =============
=============相同处理,如果⽤java写 ===========================
public static void main(String[] args){
BspEncoder bspEncoder = new BspEncoder();
bspEncoder.setEncoder(new Md5PasswordEncoder());
String st1 = dePassword("superadmin");
System.out.println(st1);
String dePassword("aaa");
System.out.println(aa1);
String dePassword("1qaz@WSX");
System.out.println(aa2);
java调用python模型}
=============相同处理,如果⽤java写 end ===========================调⽤的java需要2个jar包,如图

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。