xjar icon indicating copy to clipboard operation
xjar copied to clipboard

解密后 有引用的包 运行不了

Open itlidaye opened this issue 5 years ago • 7 comments

a jar 包 引用了 多个三方包 a 加密 第三方包不加密 a 和 第三方包都在 lib 目录下 a jar 包中与第三方包有继承关系 必须要有第三方包才能运行 a jar 解密后 运行不要 继承的类 转换 不了 第三方父类 导致 运行错误

itlidaye avatar Apr 11 '19 08:04 itlidaye

没听明白 抛出什么异常?

core-lib avatar Apr 11 '19 08:04 core-lib

Exception in thread "main" java.lang.ClassCastException: com.cluster.ImClusterService cannot be cast to com.cluster.ImClusterServiceIfc at com.commons.classload.SKJarLauncher.main(SKJarLauncher.java:94)

itlidaye avatar Apr 11 '19 08:04 itlidaye

你们用到了自定义ClassLoader 吗

core-lib avatar Apr 11 '19 08:04 core-lib

image

image image

itlidaye avatar Apr 11 '19 08:04 itlidaye

是用的 xjar 的 ClassLoader 只是我自己封装了一下

itlidaye avatar Apr 11 '19 08:04 itlidaye

这个我在开发XJar的时候倒没有考虑这种使用场景 我给你一个思路吧 同一个Class 被不同的ClassLoader 加载 是两个class 所以是不能强转的
初看你这段代码 好像 ClassLoader parent = this.getClass().getClassLoader().getParent(); 有点问题 是不是应该改成ClassLoader parent = this.getClass().getClassLoader();

core-lib avatar Apr 11 '19 09:04 core-lib

之前 我是照着 XJarLauncher 这个类写的

image 改成你说的 方式 还是不行 xjar 是不是只支持 一个jar 包的环境

还有其他的解决方案嘛

itlidaye avatar Apr 11 '19 09:04 itlidaye