通用技术 jPype Python 调用 Jar 包中的函数方法遇到异常 无法处理,求帮忙解决

Benjamin · June 19, 2019 · Last by Benjamin replied at June 26, 2019 · 1705 hits

Java 代码封装部分

import com.google.gson.Gson;

/**
 * Created by Benjamin on 2019/6/18.
 */
public class CreatJson {

    private String creatJson(){

        JsonInfo jsonInfo = new JsonInfo();
        jsonInfo.setState("0");

        jsonInfo.setDecrypteddata(DesInfo.getDecrypteddata());

        jsonInfo.setToken(DesInfo.getToken());
        jsonInfo.setData(DesInfo.getData());
        jsonInfo.setPrefix(DesInfo.getPrefix());
        jsonInfo.setSuffix(DesInfo.getSuffix());
        jsonInfo.setKey(DesInfo.getKey());

        Gson gson2=new Gson();
        String str=gson2.toJson(jsonInfo);
        return str;

    }

    // 加密
    public String encrypted(Integer num,String parameter){
        LDSDes.select(num);  // 设置秘钥 头、中、尾
        String data = LDSDes.RarString(parameter);  //字符串压缩
        String encrypted = LDSDes.encrypted(DesInfo.getKey(),data);  // 加密字符串
        String token = LDSDes.token(DesInfo.getPrefix(),encrypted,DesInfo.getSuffix());  // 获取token
        return creatJson();
    }

    // 解密
    public String decrypted(String data){
        String s= LDSDes.decrypted(data);
        if (s == null){
            String str = "Decryption failed,Not yet supported.";
            DesInfo.setData(str);
        }
        return creatJson();
    }


}

Python 无法调用 jar 包中的加密方法,其他两个可以成功调用
PS:实测 Java 调用该 Jar 无问题、Jmeter 调用也无问题

这个图的异常不用管,能调用设置对象属性有问题

2019-6-24 21:34:23
尝试性解决问题,但是问题还是没有得到很好解决

fuck..........................

附言 1  ·  June 24, 2019

JPype 为拓展部分,部分拓展功能宣告失败;

简单说一下本次拓展内容:
Java + Maven 封装为 jar 包,Jar 包提供功能:GUI 操作界面、Java -jar xxx.jar <参数 1> <参数 2>、Jar 包封装方法返回 JSON 供其他工具调用如:Java、Jmeter、Python 等其他可调用 Jar 方法的工具或语言。

最佳回复

int 和 integer 的数据结构是不一样的,需要先进行转化

select = jpype.java.lang.Integer(1)
共收到 6 条回复 时间 点赞
Benjamin #1 · June 20, 2019 Author

依然无解,,,

之前无聊试过,JPackage 调用静态方法,调用非静态用 JClass 就行了

Benjamin #3 · June 22, 2019 Author
膨化先生 回复

看代码是非静态方法;

尝试性调用静态方法,依旧报错误信息

Benjamin 回复

26 行
jx = JXClass()

int 和 integer 的数据结构是不一样的,需要先进行转化

select = jpype.java.lang.Integer(1)
Benjamin #6 · June 26, 2019 Author
a2021 回复

你好,该问题已解决,多谢

Benjamin 关闭了讨论 26 Jun 21:54
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up