是否可以将jar中的.class文件从默认包移动到另一个命名包,以便我可以导入和使用它们?
在浏览了这里的其他问题后,我想jarjar可能正是我想要的,但我不知道如何使用它。
所以我的问题是如何使用jarjar将.class文件从默认包重新打包到另一个命名包中?
编辑:我想澄清一些事情-我没有要重新打包的jar的源代码,所以我不知道如何重新编译代码。混淆和反思是不可能的。
EDIT2:使用jarjar :) java -jar jarjar.jar process rules.rules in.jar out.jar看起来非常简单
规则类似于: rules.rules a net.ylivay.src.a
问题解决了!
发布于 2011-11-18 20:21:40
您需要重新编译,然后才能更改包-简单地将类文件移动到jar内部(或外部)不会对您有所帮助。
发布于 2011-11-18 20:22:45
要将类移动到不同的包中,不仅需要更改它们在jar (或文件系统)目录结构中的位置,还需要更改源文件中的package声明,然后重新编译类。
与其尝试重新打包jar,不如看看像Eclipse这样的IDE中提供的强大的重构工具,它们使这类事情变得简单。但是由于您说(在更新您的问题时)您没有源文件,这是不可能的。
另一种方法是创建代理类,这些代理类使用反射调用默认包中所需的代理类。但这不仅是令人不快的,而且你说反思是不可能的。
所以你不能做你想做的事。
https://stackoverflow.com/questions/8182273
复制相似问题