python是用java开发的_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 = jpype.getDefaultJVMPath() # 获得系统的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, "-Djava.ext.dirs=%s" % dependency) # 当有依赖的JAR包存在时,一定要使用-Djava.ext.dirs参数进行引入

jpype.java.lang.System.out.println("hello world")

try:

aa = jpype.JClass('org.loushang.bsp.security.encoding.BspEncoder')

except Exception as e:

print(e)

BspEncoder = jpype.JClass('org.loushang.bsp.security.encoding.BspEncoder')

Md5PasswordEncoder = jpype.JClass('org.loushang.bsp.security.encoding.Md5PasswordEncoder')

bspEncoder = BspEncoder()

md5PasswordEncoder=Md5PasswordEncoder()

bspEncoder.setEncoder(md5PasswordEncoder)

res=bspEncoder.encodePassword('aaa')

print(res)

jpype.shutdownJVM() # 关闭jvm

===========end =============

=============相同处理,如果用java写 ===========================

public static void main(String[] args){

BspEncoder bspEncoder = new BspEncoder();

bspEncoder.setEncoder(new Md5PasswordEncoder());

String st1 = bspEncoder.encodePassword("superadmin");

System.out.println(st1);

String aa1=bspEncoder.encodePassword("aaa");

System.out.println(aa1);

String aa2=bspEncoder.encodePassword("1qaz@WSX");

System.out.println(aa2);

}

=============相同处理,如果用java写 end ===========================

调用的java需要2个jar包,如图

1328412-20190902151556945-1019208348.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值