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

我试图用自定义类加载器来练习自己,我也有一些问题。 有没有一种方法可以指示JVM全局使用我的自定义类加载器? 例如,我写了一个在Tomcat 6下运行的小应用程序。该servlet由容器管理,我应该在哪里设置类加载器? 另外,webapp使用一些第三方jar,我可以控制这些jar的类加载吗?

对于独立应用程序,上述答案会有所不同吗?

谢谢!


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

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

当Tomcat作为Java应用程序启动时,您可以在%TOMCAT_HOME%binrun.bat$TOMCAT_HOME/bin/run.sh可执行文件中设置此参数。

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

  • Apache Tomcat:Class Loader HOW-TO:定义ClassLoaders如何在Tomcat中工作。
  • Tomcat配置参考:上下文容器:如何定义您的Context元素
  • Tomcat配置参考:加载程序组件:如何为自己的Context定义自定义Loader元素。
  • 链接地址: http://www.djcxy.com/p/58263.html

    上一篇: How to set my custom class loader to be the default?

    下一篇: From Visual Studio projects to CMake projects