首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用jarjar重新打包默认包中的.class文件?

如何使用jarjar重新打包默认包中的.class文件?
EN

Stack Overflow用户
提问于 2011-11-18 20:16:48
回答 2查看 2.5K关注 0票数 5

是否可以将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

问题解决了!

EN

回答 2

Stack Overflow用户

发布于 2011-11-18 20:21:40

您需要重新编译,然后才能更改包-简单地将类文件移动到jar内部(或外部)不会对您有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2011-11-18 20:22:45

要将类移动到不同的包中,不仅需要更改它们在jar (或文件系统)目录结构中的位置,还需要更改源文件中的package声明,然后重新编译类。

与其尝试重新打包jar,不如看看像Eclipse这样的IDE中提供的强大的重构工具,它们使这类事情变得简单。但是由于您说(在更新您的问题时)您没有源文件,这是不可能的。

另一种方法是创建代理类,这些代理类使用反射调用默认包中所需的代理类。但这不仅是令人不快的,而且你说反思是不可能的。

所以你不能做你想做的事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8182273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档