如何将我的自定义类加载器设置为默认值?
我正在尝试用自定义类加载器练习自己,我有一些问题。 有没有办法指示JVM全局使用我的自定义类加载器? 例如,我编写了在Tomcat 6下运行的小应用程序.servlet由容器管理,我应该在哪里设置我的类加载器? 另外,webapp使用了一些第三方jar子,我可以控制这些jar子的类加载吗?
对于独立应用程序,上述答案是否会有所不同?
谢谢!
您可以将系统默认类加载器设置为JVM参数:
java -Djava.system.class.loader =com.test.YourCustomClassLoader com.test.YourMainClass
当Tomcat作为java应用程序启动时,您也可以在%TOMCAT_HOME%\bin\run.bat
或$TOMCAT_HOME/bin/run.sh
可执行文件中设置此参数。
编辑完成:如果将类加载器设置为de System类加载器,它将用于加载Tomcat组件类,不同的库和您自己的类。 如果希望类加载器仅用于应用程序类(包括库等),则应为上下文配置Loader
元素。 Loader元素必须在Context
元素中定义,可以在context.xml
文件中定义。 更多信息:
- Apache Tomcat:类加载器HOW-TO :定义ClassLoader在Tomcat中的工作方式。
- Tomcat配置参考:Context容器 :如何定义
Context
元素 - Tomcat配置参考:Loader组件 :如何为您自己的
Context
定义自定义Loader
元素。