使用背景:现在都会使用流量录制工具。但是在重放录制的流量时,会因为重发到的机器和原来的机器的ip不同,使用随机数的结果不同,导致最后的结果和原始录制的结果不一样。

解决方案:原始的录制流量的开源项目并未解决这个问题。使用的方案是:1. 对比关注的字段 2. 可以设置忽略的字段

可供参考的资料很少,这里做下记录。实际使用时,需要验证:

https://openjdk.java.net/projects/jigsaw/quick-start#xoverride

在java8及之前,可以使用-Xbootclasspath/p 直接将自己写的代码覆盖原始的source包代码,非常方便。可惜的是,从jdk9及之后,因为使用模块化的原因,不能再使用-Xbootclasspath/p进行模块修补。

查到还可以使用-Djava.endorsed.dirs使用。但是其是有限制的,不能覆盖java.lang.*包中的类。有可能该方法也不可使用。

标准方法是使用--patch-module方式,但是该方式的具体验证还需要实操。

上文链接中的:--patch-module一节中

https://www.e-learn.cn/content/wangluowenzhang/2210181

也可以相互参考

https://www.oracle.com/technetwork/java/javase/9-relnote-issues-3704069.html

也有说到The boot class path has been mostly removed in this release. The java -Xbootclasspath and -Xbootclasspath/p options have been removed. The javac -bootclaspath option can only be used when compiling to JDK 8 or older. The system property sun.boot.class.path has been removed. Deployments that rely on overriding platform classes for testing purposes with -Xbootclasspath/p will need to changed to use the --patch-module option that is documented in JEP 261. The -Xbootclasspath/a option is unchanged.

/a还是有存在可以使用的。这里还是需要验证

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐