Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 手动编辑Jar以更改包名称_Java_Maven - Fatal编程技术网

Java 手动编辑Jar以更改包名称

Java 手动编辑Jar以更改包名称,java,maven,Java,Maven,我有一个来自外部源的jar文件。jar中的所有类都在com.xyz包中 我想将所有类移到com.xyzold包中 这是简单的解压jar、将xzy文件夹重命名为xyzold并对其重新压缩,还是我还需要修改每个类文件 这是我的解决方案,使用 下面是我的rules.txt文件的内容: rule com.google.** com.googleold.@1 不,您需要修改jar文件中的所有类。您需要有一个源代码才能更改包。您还需要修改所有Java源文件。不仅是包名,还有导入,以及任何可能的内联声明。

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

我想将所有类移到com.xyzold包中

这是简单的解压jar、将xzy文件夹重命名为xyzold并对其重新压缩,还是我还需要修改每个类文件


这是我的解决方案,使用

下面是我的rules.txt文件的内容:

rule com.google.** com.googleold.@1

不,您需要修改jar文件中的所有类。您需要有一个源代码才能更改包。

您还需要修改所有Java源文件。不仅是包名,还有导入,以及任何可能的内联声明。不值得。你应该看看。(我不为姓名承担任何责任:))


它的主要用例是将外部jar嵌入到您自己的jar中,为此,它可以重新命名现有的包。它改变了必要的字节码。你可以调整它来做你想做的事。

你可以用它来实现。此外,您不需要要修改的类的源代码,因为程序是在字节码级别执行的(即,它直接修改.class文件)。

您可以在Maven构建中使用来完成此操作。

您可能可以使用。它当然可以在包中移动代码,并在字节码级别进行操作。它的主要目的是模糊化,但当然应该首先考虑其他选项之一。

为什么需要将类移动到不同的包?它们有一个新项目,使用相同的包和类名。它本来应该是完全向后兼容的,但事实并非如此。我们有一个很大的代码库,依赖于旧版本。有更新的吗?
rule com.google.** com.googleold.@1