实验目的
- 2个jar包中,各有一个类名完全相同的类Test,此时,如果一个工程中同时引入这2个jar包,那么此时工程中调用此Test时,它到底调用哪个jar包的Test类。
新建一个工程,里面有一个类Jar1
public class Jar1 {
public void print(){
System.out.println("Test_1");
}
}
用此类生成2个不同名称的jar包,一个打印 Test_1,一个打印Test_2,jar包的名称分别对应Test_1.jar,Test_2.jar.
新建一个工程
建立类Testjar.java,将上面建立的2个jar都引入
public class TestJar {
public static void main(String[] args){
new Jar1().print();
}
}
jar的顺序是testjar_1,testjar_2
执行程序
此时打印J信息为 “Test _ 1”,即引用了testjar_1包中的类
实验二:
将jar名字互换:testjar_1 -> testjar_2 , testjar_2 -> testjar_1
执行man
此时打印信息为 “Test_2”
结论:在同一个文件夹下,jar包是按顺序从上到下依次加载(即在Referenced Libraries顺序加载),如果已经找到,则不会再后续jar包中进行查找。
参考文献:
- 大小: 4.3 KB
分享到:
相关推荐
Tomcat8相较于之前的版本,确实对JAR包的加载顺序进行了调整,这在某些情况下可能会导致开发者遇到意料之外的问题。本文将深入探讨这个问题,以及如何理解和解决因jar加载顺序改变而引发的错误。 首先,我们要明白...
Tomcat的启动顺序涉及到多个层次的加载,从Bootstrap类开始,逐步加载系统配置、公共库、共享库以及Web应用程序。 【详细知识点】: 1. Bootstrap类: Tomcat的启动始于Bootstrap类,这是Tomcat服务器的主入口点...
标题暗示我们需要关注的是如何在Tomcat环境中集成和使用Memcached服务,这通常涉及到将特定的jar包添加到Tomcat的类路径中,以便应用程序能够利用Memcached的缓存功能。 【描述分析】 描述简单明了,再次强调了我们...
通过添加特定的jar包(如做session共享所需jar包),可以实现Tomcat间的Session同步。 4. **负载均衡策略**: - **轮询(Round Robin)**:每个请求按顺序分配到不同的服务器。 - **权重轮询(Weighted Round ...
### Tomcat启动时类加载顺序详解 #### 一、引言 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用程序。它支持最新的Servlet、JSP等规范,并且以其轻量级、简单易用的特点而受到开发者的青睐。在...
在Spring Boot应用中,由于其内嵌的Tomcat服务器和众多的依赖库,通常会导致生成的jar包体积庞大。尤其当引入多个第三方组件后,jar包的大小可能会达到100MB甚至更大,这给产品的部署和升级带来了极大的不便。因此,...
在实际操作中,结合项目实际部署情况和环境变量,逐一排查并解决上述提到的问题点,就能有效解决Tomcat加载JAR异常的问题。 需要注意的是,由于文档内容是通过OCR扫描得到的,可能存在个别字词的识别错误。因此,在...
### Tomcat加载顺序详解 Apache Tomcat作为一款广泛使用的开源Servlet容器,其类加载机制是理解和维护基于Tomcat的应用程序的重要部分。Tomcat的类加载器遵循特定的加载顺序,确保了不同应用间的隔离性和资源的正确...
在将一个已经在Tomcat上正常运行的应用迁移到WebLogic时,可能会遇到各种问题,其中最常见的是配置问题和JAR包冲突。 标题"weblogic部署项目jar冲突解决"指出的核心问题是JAR包冲突。这是因为不同的应用服务器可能...
除此之外,jar包还可能包含资源文件(如图片、配置文件等)和相关的元数据,如清单文件(Manifest file),它定义了类加载顺序、主类(main class)等信息。 创建jar包的过程通常包括以下几个步骤: 1. **编写Java...
当Tomcat加载类时,它遵循以下顺序: - 使用Bootstrap类加载器尝试加载。 - 使用System类加载器尝试加载。 - 使用Webapp类加载器加载`WEB-INF/classes`下的类。 - 使用Webapp类加载器加载`WEB-INF/lib`中的jar...
《深入解析Tomcat7 Catalina核心包源码》 Tomcat作为开源的Java Servlet容器,是Web服务器领域的重要角色,其高效、轻量级的特性深受开发者喜爱。在Tomcat7版本中,Catalina是核心组件之一,负责处理HTTP请求和响应...
"websphere下部署CXF项目jar包冲突问题解决方式"这一主题聚焦于如何在IBM Websphere Application Server (WAS)中成功部署包含Apache CXF Web服务的WAR包,解决由于类加载导致的运行异常。 Apache CXF是一个流行的...
4. **引入jar包**: 将所需的JDBC驱动jar包添加到项目的类路径中。对于IDE如Eclipse、IntelliJ IDEA,可以通过配置构建路径或者模块依赖来添加。在命令行环境中,通常需要通过`java -cp`参数指定。 5. **建立连接**:...
可执行Jar(如使用了`Main-Class`属性的Manifest文件)可以直接通过`java -jar`命令运行,而War包是Web应用的打包格式,通常部署在Servlet容器(如Tomcat)中运行。加载外部Jar到这两种类型的包中,需要考虑到它们...
例如,可以通过修改`common.loader`、`shared.loader`和`context.loader`属性来改变类的加载顺序和来源。 在深入研究"DevLoader"之前,需要查看压缩包内的具体文件,例如org目录下可能包含与DevLoader相关的源代码...
- 避免类加载问题:如果在同一应用中同时使用Tomcat和其他服务器,可能需要调整类加载顺序,避免类冲突。 - 测试和调试:在整合过程中,使用日志记录和单元测试来确保每个组件都按预期工作。 以上就是关于...
Tomcat提供了`-J`参数来指定包含预编译JSP的jar包,这样启动时会直接加载这些预编译的Servlet,而不是在首次请求时才编译。这个过程涉及到JSP生命周期和Tomcat的配置。 最后,"servlet过滤器 - phpzxh - 博客园"这...
在Tomcat中,我们可以通过配置`catalina.properties`文件和`server.xml`文件来调整类加载策略,例如设置自定义的类加载顺序或启用共享类加载器。 此外,Tomcat还支持热部署,即在不重启服务器的情况下更新Web应用的...