java替换sorce包的代码

使用背景:现在都会使用流量录制工具。但是在重放录制的流量时,会因为重发到的机器和原来的机器的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还是有存在可以使用的。这里还是需要验证

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值