gpt4 book ai didi

java - 如何使用 jarjar 从默认包中重新打包 .class 文件?

转载 作者:搜寻专家 更新时间:2023-11-01 03:28:02 24 4
gpt4 key购买 nike

是否可以从默认包中移动 jar 中的 .class 文件到另一个命名的包,以便我可以导入和使用它们?

在这里浏览其他问题后,我认为 jarjar 可能正是我要找的,但我不知道如何使用它。

所以我的问题是如何使用 jarjar 将 .class 文件从默认包重新打包到另一个命名包?

编辑:我想澄清一些事情——我没有我想重新打包的 jar 的来源,所以我不知道如何重新编译代码。混淆和反射(reflection)是不可能的。

EDIT2:使用 jarjar 看起来非常简单 :)java -jar jarjar.jar 进程 rules.rules in.jar out.jar

rules.rules 看起来像这样:规则a net.ylivay.src.a

问题解决了!

最佳答案

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

与其尝试重新打包 jar,不如看看 Eclipse 等 IDE 中提供的功能强大的重构工具,它们可以使此类事情变得简单。但是既然你说(在更新你的问题时)你没有源文件,那是不可能的。

另一种方法是创建代理类,使用反射在默认包中调用您需要的代理类。但这不仅令人不快,而且您还说反射(reflection)是不可能的。

所以你不能做你想做的。

关于java - 如何使用 jarjar 从默认包中重新打包 .class 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8182273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com