如何更改JAR中类的包名?

时间:2015-05-01 13:08:23

标签: java jar java-bytecode-asm

典型问题 - 我有x-1.0.jarx-2.0.jary-1.0.jar。我想使用x-2.0.jary-1.0.jar,但y-1.0.jar取决于x-1.0.jar

有一个工具可以让你将依赖关系捆绑到一个JAR中,并在内部更改包名,以避免冲突。例如,如果“x”包含软件包“com.foo”中的软件,那么它可以将x-1.0.jar中的所有类更改为包“old.com.foo”,以及{{{}中的任何引用1}},所以我们可以创建一个新的JAR y-1.0.jar;这个JAR不会在“com.foo”包中包含任何公开公开的类,因此我们可以随意使用xy-1.0.jar并且没有冲突。

问题是,我完全忘记了该工具的名称!我们考虑过在公司使用过一次,但我的管理层担心对类进行二进制级修改。但是现在(几年后)我们遇到了一个类似的问题,它只会影响测试代码,所以我想再次提出。但我完全忘记了这个名字!

我记得的事情:

  • Google Code上托管的开源
  • 基于
  • 下的ObjectWeb ASM
  • 我认为这个名字可能是一些描述

有谁知道这可能是什么工具?请帮帮我!

1 个答案:

答案 0 :(得分:1)

我记得它!该工具称为JarJar Links。