java - 手动编辑 jar 以更改软件包名称

  显示原文与译文双语对照的内容
0 0

我有一个jar文件从外部源。 jar中的所有类都在com 。xyz软件包。

我想将所有类都在com .xyzold包。

这非常简单,因为解压缩jar,重命名xyz文件夹以xyzold和rezipping它,或者是否需要修改每个类文件一样?


下面是我的解决方案,使用 Jar jar Links

java -jar jarjar-1.4.jar process rules.txt google-collections-1.0.jar google-collections-old-1.0.jar

和我的规则的内容如下txt文件:

rule com.google.** com.googleold.@1
时间:原作者:8个回答

0 0

可以使用 Jar jar Links 这么大的。 也不需要你想修改的源代码类,如程序它是在字节码级别( ie 。 它修改了class文件直接) 。

原作者:
0 0

不需要修改所有jar文件中的类。 你需要源代码才能更改软件包。

原作者:
0 0

则需要修改所有Java源文件太。 而不仅仅是包名但是导入过,任何可能的内联声明。 不是很值得。

原作者:
0 0

你应该看看 Jar jar Links 。 ( 我没有追究任何responisibility的名称:。)

其主要用例是external jars嵌入在自己的jar中,为了实现这个想法,它可以重命名现有的包。 它改变必要的字节代码。 你可能能够调整它随你的便

原作者:
0 0

你可以使用 Maven shade插件来达到这一目的Maven生成。

原作者:
0 0

则很可能是使用以下 ProGuard模糊处理程序 。 在包中也一定能左右移动代码和字节代码级别上运行。 其主要目的是先模糊处理其他选项当然应该是实现了虽然是件困难的事。

原作者:
...