j2ee工程(即动态网站工程Dynamic Web Project),在tomcat容器下运行时(确切说是class文件在运行时),jar包的执行顺序
来源:互联网 发布:java医疗管理系统 编辑:程序博客网 时间:2024/05/29 08:59
j2ee工程(即动态网站工程Dynamic Web Project),在tomcat容器下运行时(确切说是class文件在运行时),jar包的执行顺序,也就是编写java文件时,文件头import的class,如:
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
执行顺序是:
====说法1===
参考http://blog.csdn.net/kangojian/article/details/8796531
1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。
2.环境变量CLASSPATH中的jar和class文件。
3.$CATALINA_HOME/common/classes下的class文件。
4.$CATALINA_HOME/commons/endorsed下的jar文件。
5.$CATALINA_HOME/commons/i18n下的jar文件。
6.$CATALINA_HOME/common/lib 下的jar文件。
(JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC Driver的情况。)
7.$CATALINA_HOME/server/classes下的class文件。
8.$CATALINA_HOME/server/lib/下的jar文件。
9.$CATALINA_BASE/shared/classes 下的class文件。
10.$CATALINA_BASE/shared/lib下的jar文件。
11.各自具体的webapp /WEB-INF/classes下的class文件。
12.各自具体的webapp /WEB-INF/lib下的jar文件。
====说法2====
参考http://blog.sina.com.cn/s/blog_7a9af9b10101batx.html
1. $java_home/jre/lib 目录下的java核心api
2. $java_home/jre/lib/ext 目录下的java扩展jar包
3. 环境变量CLASSPATH中的jar和class文件。
4. $CATALINA_HOME/common目录下按照文件夹的顺序从上往下依次加载
5. $CATALINA_HOME/server目录下按照文件夹的顺序从上往下依次加载
6. $CATALINA_BASE/shared目录下按照文件夹的顺序从上往下依次加载
7. 我们的项目路径/WEB-INF/classes下的class文件
8. 我们的项目路径/WEB-INF/lib下的jar文件
在同一个文件夹下,jar包是按顺序从上到下依次加载
由ClassLoader的双亲委托模式加载机制我们可以知道,假设两个包名和类名完全相同的class文件不再同一个jar包,如果一个class文件已经被加载java虚拟机里了,那么后面的相同的class文件就不会被加载了。例如import java.util.List,假设test1.jar中java文件夹下有个util文件夹,util文件夹下有List.class文件,test2.jar中java文件夹下也有个util文件夹,util文件夹下有List.class文件,而tomcat根据顺序先加载test1.jar,那么test2.jar就不会被加载到java虚拟机即jvm上。
===
1先读$JAVA_HOME即jdk中的jar包
2再读$CATALINA_HOME即tomcat下的jar包
3最后执行工程本身web-inf/class下的class文件和web-inf/lib下的jar包.
- j2ee工程(即动态网站工程Dynamic Web Project),在tomcat容器下运行时(确切说是class文件在运行时),jar包的执行顺序
- 如何在Eclipse中的Dynamic web project工程中运行Apache服务器
- java project export 工程jar包单独运行(bat文件)
- 非web工程java项目中的路径问题(针对以jar包运行的工程)
- 如何在Tomcat 和 Eclipse下执行共享jar包的工程?
- 在cmd下运行有jar包的class
- Jsp前台提交中文乱码问题解决方案(Tomcat项目运行时,加载jar包或类文件的顺序)
- 打成jar包 在命令行下执行java工程
- 在命令行下执行java工程(打成jar包)
- 打成jar包 在命令行下执行java工程
- 打成jar包 在命令行下执行java工程
- 在eclipse的tomcat下运行webx(maven)工程(区别于jetty下的项目运行)
- 在MyEclipse下修改部署工程名,运行Tomcat后工程名字改变的方法
- web工程在tomcat下的部署
- Tomcat项目运行时加载jar包或类文件的顺序
- 将maven工程打成了jar包,如何在控制台运行jar包
- maven打好的jar包如何在运行时指定main-class
- mac eclipse neon(javaee)在tomcat9.0上运行dynamic web project错误
- 匹配(工作分配问题)
- 人员分配问题_SSL1338_匹配
- 第5章 IO管理
- 最大匹配 人员分配
- springMVC方法,导出/下载文件。
- j2ee工程(即动态网站工程Dynamic Web Project),在tomcat容器下运行时(确切说是class文件在运行时),jar包的执行顺序
- 求最大回文子字符串
- Javascript, 前端类库
- ASP.NET的三层架构(DAL,BLL,UI)
- 修改Android 自带输入法(LatinIME)空格键的显示
- UIGestureRecognizer与button冲突的处理
- 4-1 单链表逆转 (20分)
- JS框架——MVVM模式的Knockout.js
- 选择法排序