【发布时间】:2015-12-20 06:22:37
【问题描述】:
我正在使用一个使用System.currentTimeMillis() 的JAR 文件来获取当前系统时间。当JAR文件的函数调用System.currentTimeMillis()时,我想调用我当前的时间方法(nanoTime())。
有什么建议可以解决这个问题吗?
【问题讨论】:
-
没有源码,最简单的就是反编译相关类,改调用,然后重建jar。
-
JAR 文件已加密,无法反编译然后重建。
-
当然可以,不然JVM就加载不出来了。不可能动态更改类在运行时进行的调用。如果无法更改 JAR,则无法更改类调用的内容。
-
你在问类似this的问题吗?
-
不完全是。替换调用时间方法的一种方法是替换所有使用该方法的方法。我知道如何使用 Javassit 做到这一点。但是,问题是我需要覆盖 100 多个方法。所以,不是好主意。另一方面,我不确定是否可以使用 Javassit 覆盖 System.currentTimeMillis() 方法。如果可能,请告诉我?
标签: java reflection