我有一个jar,其中包含一行代码,用于比较两个双精度值,其中一个值为0.7
,但我需要将其更改为0.0
。
我无法使用反射或类似的东西,因为这是一个已编译的jar文件(不是开源),但更改此值至关重要,因为如果它保持在0.7
则存在巨大的滞后问题
我在考虑编辑字节码,但找不到任何好的软件。
我很感激任何帮助。
答案 0 :(得分:1)
如果您可以反编译该类,则可以进行更改并重新编译它。然后用你的补丁类汇总jar文件。这取决于类和用于编译它的JDK,这将是多么容易。
参考文献:JAD(Wiki链接,因为JAD基本上是一个死的项目,虽然它在我需要的时候继续工作。)如果你使用Eclipse,你可能会对JD-Eclipse好运。还有Procyon项目,我的成功有限。
答案 1 :(得分:1)
了解如何反编译程序Java类,然后自己重新编译软件。
How do I "decompile" Java class files?
从另一个类似的问题:(Change string constant in a compiled class)
如果您有此课程的来源,那么我的方法是:
-source
和-target
降级编译器。jar u
或Ant任务答案 2 :(得分:0)
除了使用(Hex)编辑器或反编译器之外,使用可以使用像asm这样的字节码操作库。实际上,您甚至可以动态地使用预加载代理transform the code。