jdk生成的动态代理类,默认是只存在于内存之中的字节码文件,想要显示出来需要一些方法,而这些方法是区分jdk版本的[1]。
一,jdk8及之前版本
由于我的jdk版本是8,所以在vm option中加入如下变量即可[1]:
-Dsun.misc.ProxyGenerator.saveGeneratedFiles=true
或者添加代码:
System.setProperty("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");
二,jdk8以后
参考文章[1]:
添加代码
System.setProperty("jdk.proxy.ProxyGenerator.saveGeneratedFiles", "true");
或
System.getProperties().put("jdk.proxy.ProxyGenerator.saveGeneratedFiles", "true");
或在vm option中,加入
-Djdk.proxy.ProxyGenerator.saveGeneratedFiles=true
参考文章:
[1],将JDK动态代理生成的类保存为 .class文件System.setProperty(“sun.misc.ProxyGenerator.saveGeneratedFiles“, “true“)无效

文章讲述了如何在不同版本的JDK中,特别是JDK8及其前后版本,设置保存动态代理类到硬盘的方法。对于JDK8之前,可以在VM选项中添加-Dsun.misc.ProxyGenerator.saveGeneratedFiles=true,或者在代码中设置系统属性。而对于JDK8之后的版本,则需使用-Djdk.proxy.ProxyGenerator.saveGeneratedFiles=true。
881

被折叠的 条评论
为什么被折叠?



