`
wym0291
  • 浏览: 19216 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Tomcat6.0.18学习笔记_bootstrap.jar

阅读更多

Tomcat6.0.18的bin目录下有一个bootstrap.jar文件,而这个jar中的内容在lib目录下的catalina.jar文件中也存在。为什么要把同样的class放在2个不同的jar中,而且还单独提取出来放到bin目录下?

 

从源码中可以看到,Tomcat6.0.18使用common ClassLoader加载lib目录下的jar,但执行启动脚本时,是把bin目录下的bootstrap.jar设置到-classpath中,然后执行MAINCLASS=org.apache.catalina.startup.Bootstrap。此时,是使用System ClassLoader来加载的Bootstrap.class。如果不单独提取出bootstrap.jar,而是将catalina.jar设置到-classpath中,这时catalina.jar中的所有class将会被System ClassLoader加载。

 

如果是后者就会出现问题了,catalina.jar中的类使用了通过common ClassLoader加载的lib目录下的jar中的class,而此时catalina.jar却是被System ClassLoader加载,默认的双亲委派会导致加载器的向上委托加载,导致catalina.jar中的class找不到common ClassLoader加载的class。

 

如果单独将bootstrap.jar提取出来,设置到-classpath中则就不会出现上述问题。而将bootstrap.jar放置到bin目录下,还有另外的用途,在源码中可以看到:

File bootstrapJar =
            new File(System.getProperty("user.dir"), "bootstrap.jar ");
        if (bootstrapJar.exists() ) {
            try {
                System.setProperty
                    ("catalina.home",
                     (new File(System.getProperty("user.dir"), ".."))
                     .getCanonicalPath());
            } catch (Exception e) {
                // Ignore
                System.setProperty("catalina.home",
                                   System.getProperty("user.dir"));
            }
        } else {
            System.setProperty("catalina.home",
                               System.getProperty("user.dir"));
        }

分享到:
评论
2 楼 opmic 2010-12-03  
楼上
从原文件中看出,tomcat也是先执行楼主那段代码的.
1 楼 wang_hj 2010-09-25  
这段代码应该是没用的,因为tomcat6提供了如下的两个静态方法:
[code="java
    public static String getCatalinaHome() {
        return System.getProperty("catalina.home",
                                  System.getProperty("user.dir"));
    }

    public static String getCatalinaBase() {
        return System.getProperty("catalina.base", getCatalinaHome());
    }

相关推荐

    apache-tomcat-6.0.18-src.tar.gz_tomcat src lin_tomcat-6.0.18 lin

    基于LINUX的TOMCAT6 apache-tomcat-6.0.18-src.tar.gz

    apache-tomcat-6.0.18.rar_apache tomcat_tomact_tomcat 6.0.18

    这个"apache-tomcat-6.0.18.rar"压缩包包含了Apache Tomcat的6.0.18版本,这是一个较早但仍然被一些用户使用的稳定版本。 在Java服务器领域,Tomcat因其轻量级、高效且易于配置的特点而广受欢迎。它实现了Sun ...

    tomcat_6.0.18_配置[文].pdf

    ### Tomcat 6.0.18 配置详解 #### 一、前言 本文主要针对`tomcat_6.0.18_配置[文].pdf`文档中的内容进行详细解读,帮助读者理解如何配置Apache Tomcat 6.0.18,并通过实例演示如何搭建一个基本的JSP应用。 #### ...

    apache-tomcat-6.0.18_rjmed.rar_MYSQL_jsp医药_药品管理系统_进销存 mysql_进销存系

    总的来说,"apache-tomcat-6.0.18_rjmed.rar"是一个集成了JSP编程语言和MySQL数据库的医药进销存管理系统,它提供了全面的医药行业管理解决方案,同时也为学习者提供了宝贵的实践平台。无论是企业还是个人,都能从中...

    apache-tomcat-6.0.18

    1. 下载:首先,从官方或者可靠的源下载适用于您操作系统的Tomcat版本,如本例中的apache-tomcat-6.0.18.exe。 2. 安装:运行.exe文件,按照向导指示进行安装,选择合适的安装目录。 3. 配置:安装完成后,配置...

    Zotero-6.0.18_linux-x86_64.tar.bz2

    Zotero-6.0.18_linux-x86_64.tar.bz2

    hibernate-validator-6.0.18.Final-sources.jar

    java运行依赖jar包

    apache-tomcat-6.0.18.tar.gz

    2. 解压:使用命令行工具或图形界面解压工具将`apache-tomcat-6.0.18.tar.gz`解压到所需的目录。解压后,会得到一个名为`apache-tomcat-6.0.18`的目录,其中包含所有必要的文件和子目录。 3. 配置环境变量:为了方便...

    tomcat6.0.18 解压缩版

    【标题】"Tomcat6.0.18 解压缩版" 涉及的主要知识点是Apache Tomcat服务器的6.0.18版本,这是一个开源的、基于Java Servlet和JavaServer Pages (JSP) 技术的应用服务器。Tomcat是Java EE Web应用程序部署的最常用...

    Python库 | ybc_speech-6.0.18.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:ybc_speech-6.0.18.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    绿色免安装tomcat6.0.18

    【标题】"绿色免安装Tomcat6.0.18"是针对Java应用程序服务器Tomcat的一个特殊版本,它不需要通过传统的方式进行安装,比如运行安装程序。这种版本通常是为了方便用户快速部署和运行,尤其适合那些对系统环境要求不高...

    liunux下 安装包apache-tomcat-6.0.18.tar.gz

    本文将详细讲解如何在Linux系统上安装和配置`apache-tomcat-6.0.18.tar.gz`这个压缩包。 一、下载与准备 首先,你需要在官方网站或可靠的资源站点下载`apache-tomcat-6.0.18.tar.gz`的压缩包。下载完成后,将文件...

    tomcat 6.0.18

    尽管后续有更高版本的Tomcat发布,但6.0.18仍被一些开发者用于维持老项目或者作为学习基础。 【压缩包子文件的文件名称列表】"apache-tomcat-6.0.18" 指的是Tomcat的完整源代码和二进制文件的打包。这个压缩包内...

    tomcat6学习笔记.txt

    ### Tomcat 6 学习笔记 #### 一、Tomcat 6 平台搭建与配置 ##### 1. 下载与安装 Tomcat 6 是一个免费且开源的Servlet容器,由Apache软件基金会下的Jakarta项目开发。可以通过官方网站:...

    apache-tomcat-6.0.18.zip

    7. **安装程序**:`apache-tomcat-6.0.18.exe`是一个Windows平台的安装程序,简化了在Windows系统上部署Tomcat的过程,包括自动设置环境变量和创建启动快捷方式等。 8. **核心组件**:`apache-tomcat-6.0.18`目录下...

    tomcat_6.0.18(免安装 解压即可使用)

    标题“tomcat_6.0.18(免安装 解压即可使用)”指的是Apache Tomcat 6.0.18版本,这是一个轻量级、开源的Java应用服务器,主要用于部署和运行Java Servlets和JavaServer Pages (JSP)。这个版本的Tomcat是免安装的,...

    tomcat6.0.18

    文件名“apache-tomcat-6.0.18.exe”表明这是一个Windows平台下的安装程序,用户可以通过运行这个exe文件来在Windows系统上安装Tomcat 6.0.18。安装过程中,用户可以选择安装路径、配置端口号、设置环境变量等,以...

    apache-tomcat-6.0.18.rar

    Apache Tomcat 6.0.18 是一个广泛使用的开源软件,它是一个符合Java Servlet和JavaServer Pages(JSP)规范的应用服务器,主要用于部署和运行Java Web应用程序。这个版本是解压缩版,意味着用户下载后无需进行编译,...

    apache-tomcat-6.0.18.zip下载

    本压缩包“apache-tomcat-6.0.18.zip”包含了运行和管理Java web应用程序所需的所有组件。 首先,Tomcat是Apache软件基金会Jakarta项目的一部分,它是一个轻量级的应用服务器,尤其适合小型到中型的应用。与更重量...

Global site tag (gtag.js) - Google Analytics