Heim > Fragen und Antworten > Hauptteil
PHP中文网2017-04-17 17:46:59
问题描述的不是很清楚
不过类加载可以简单给你说下
a.Bootstrap ClassLoader/启动类加载器
主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作.
b.Extension ClassLoader/扩展类加载器
主要负责jdk_home/lib/ext目录下的jar包或 -Djava.ext.dirs 指定目录下的jar包装入工作
c.System ClassLoader/系统类加载器
主要负责java -classpath/-Djava.class.path所指的目录下的类与jar包装入工作.
d.User Custom ClassLoader/用户自定义类加载器(java.lang.ClassLoader的子类)
在程序运行期间, 通过java.lang.ClassLoader的子类动态加载class文件, 体现java动态实时类装入特性
高洛峰2017-04-17 17:46:59
tomcat 用的是 WebappClassLoader 加载 app的,不过没看到 server.xml 开放了这个接口。如果要替换,需要修改 tomcat 源码。
还有一个更好的解决方案,用 java agent 来动态替换 class,这样就可以做到对class的加解密。