// jdk8及之前的设置System.setProperty("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");// Properties().put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");// jdk8之后的设置System.setProperty("jdk.proxy.ProxyGenerator.saveGeneratedFiles", "true");// Properties().put("jdk.proxy.ProxyGenerator.saveGeneratedFiles", "true");
// jdk8及之前的设置
-Djdk.proxy.ProxyGenerator.saveGeneratedFiles=true// jdk8之后的设置
-Djdk.proxy.ProxyGenerator.saveGeneratedFiles=true
属性名的确定 可以查看 ProxyGenerator 类的 saveGeneratedFiles 属性
private static final boolean saveGeneratedFiles = (Boolean)AccessController.doPrivileged(new GetBooleanAction("sun.misc.ProxyGenerator.saveGeneratedFiles"));private static final boolean saveGeneratedFiles = (Boolean)AccessController.doPrivileged(new GetBooleanAction("jdk.proxy.ProxyGenerator.saveGeneratedFiles"));
项目启动后在工程根目录的 com.sun.proxy 包路径下, 创建了动态代理生成的.class文件
$Proxy0.class
$Proxy1.class
$Proxy2.class
...
这么多Proxy哪个是我想要的?
调用 debug
查看代理类的类型和地址
allocationClient{$Proxy211@18899}
Proxy211 是我想要的
打印获取
获取代理类名称
package ProxyClass(ClassLoader(), AllocationClient.class).getName()
// 结果
com.sun.proxy.$Proxy211
package sun.ateProxyClass// 条件断点
var1[0].getSimpleName().contains("AllocationClient")// 看 var2 path
javac
javap
字节码文件到汇编语言
javac -g xx.java
javap -v xx.class
下载jd-gui 的jar包,然后执行
java -jar jd-gui-1.6.6.jar
打开需要反编译的 class 文件就可以查看了!
本文发布于:2024-02-08 19:54:34,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170739343468547.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |