一尘不染

如何将自定义类加载器设置为默认值?

tomcat

我正在尝试使用自定义类加载器进行练习,并且有一些问题。有没有办法表明JVM全局使用我的自定义类加载器?例如,我编写了一个在Tomcat
6下运行的小型应用程序。servlet由容器管理,我应该在哪里设置类加载器?此外,该Web应用程序使用了一些3rd party
jars,我可以控制这些jars的类加载吗?

对于独立应用程序,以上答案是否会有所不同?

谢谢!


阅读 314

收藏
2020-06-16

共1个答案

一尘不染

您可以将系统默认的类加载器设置为JVM参数:

java -Djava.system.class.loader
    =com.test.YourCustomClassLoader com.test.YourMainClass

由于Tomcat是作为Java应用程序启动的,因此您也可以在%TOMCAT_HOME%\bin\run.bat$TOMCAT_HOME/bin/run.sh可执行文件上设置此参数。

编辑完成:
如果将您的类加载器设置为系统类加载器,它将用于加载Tomcat组件类,不同的库以及您自己的类。如果希望仅将类加载器用于应用程序类(包括库等),则应Loader为上下文配置一个元素。必须在Context元素内部定义Loader元素,并且可以在context.xml文件中定义。更多信息:

2020-06-16