我有一个要求,我需要一次加载两个版本的 jar。为了避免类路径冲突,我想重命名其中一个 jar 的包。然后在源代码中,您总是可以通过包名称轻松确定版本。
我玩过javap
但找不到 Java 1.6 的汇编程序。我也尝试用JD反编译代码,但它从来没有完全正确并且无法编译。
我有一个要求,我需要一次加载两个版本的 jar。为了避免类路径冲突,我想重命名其中一个 jar 的包。然后在源代码中,您总是可以通过包名称轻松确定版本。
我玩过javap
但找不到 Java 1.6 的汇编程序。我也尝试用JD反编译代码,但它从来没有完全正确并且无法编译。
除了手动修改类之外,要考虑的另一件事是使用一些类加载器魔法。我自己从来没有这样做过,但是读过一些关于它的内容。有一篇关于 devx 的文章解释了如何加载多个版本的类。
您可以使用开源包:JclLoader,它有助于加载同一个 jar 的不同版本。这也是在我们的一个系统中进行测试的需要。
链接:http: //sourceforge.net/projects/jcloader/