84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
要对web项目的class文件进行混淆,请问在哪配置可以让tomcat先使用自定义的类加载器?
认证高级PHP讲师
问题描述的不是很清楚不过类加载可以简单给你说下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动态实时类装入特性
tomcat 用的是 WebappClassLoader 加载 app的,不过没看到 server.xml 开放了这个接口。如果要替换,需要修改 tomcat 源码。
还有一个更好的解决方案,用 java agent 来动态替换 class,这样就可以做到对class的加解密。
问题描述的不是很清楚
不过类加载可以简单给你说下
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动态实时类装入特性
tomcat 用的是 WebappClassLoader 加载 app的,不过没看到 server.xml 开放了这个接口。如果要替换,需要修改 tomcat 源码。
还有一个更好的解决方案,用 java agent 来动态替换 class,这样就可以做到对class的加解密。