如何将我的自定义类装入器设置为默认的?
2022-09-04 21:02:02
我正在尝试使用自定义类加载器练习自己,并且有一些问题。有没有办法指示 JVM 全局使用我的自定义类装入器?例如,我编写了在Tomcat 6下运行的小型应用程序。servlet 由容器管理,我应该在哪里设置类装入器?此外,webapp使用一些第三方jar,我可以控制这些jar的类加载吗?
在独立应用程序的情况下,上述问题的答案会有所不同吗?
谢谢!
我正在尝试使用自定义类加载器练习自己,并且有一些问题。有没有办法指示 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
Context
Loader
Context