JDK动态代理生成的CLASS文件查看
在学习代理模式的时候,想看看动态代理生成的文件长啥样.只需要在程序启动时设置生成配置.
源码中可以看出文件输出是通过 saveGeneratedFiles 控制的.
而saveGeneratedFiles的生成是通过GetBooleanAction方法读取系统变量由来.
private static final boolean saveGeneratedFiles = (Boolean)AccessController.doPrivileged(new GetBooleanAction("sun.misc.ProxyGenerator.saveGeneratedFiles"));
所以只需要设置环境变量sun.misc.ProxyGenerator.saveGeneratedFiles为true即可.
如何新增环境变量.
方法一:idea启动配置vm参数
-Dsun.misc.ProxyGenerator.saveGeneratedFiles=true
idea 传入vm参数 用-D
方法二:程序启动入口写入配置参数
System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");
版本注意:
在jdk1.8及以前参数名称为:sun.misc.ProxyGenerator.saveGeneratedFiles
在jdk1.8以后参数名为:jdk.proxy.ProxyGenerator.saveGeneratedFiles
如何确认版本可以在idea中双击shift搜索saveGeneratedFiles.查看源码得知.