java 启动查看jar包加载顺序并设置classpath
本文为博主原创,转载请注明出处:
1.idea查看jar包加载顺序
jdk8 可以通过 -XX:+TraceClassPaths 参数进行查看jar包的加载顺序
jdk11 可以通过 -Xlog:class+path=info 参数进行查看jar包的加载顺序
idea 启动查看配置方式如下:
进行服务启动之后,会在控制台打印jvm加载时的classpath参数;示例如下:
在控制台 搜索 java.class.path 就能看到具体的配置;java.class.path 的顺序就是 jvm 加载class以及 jar包的顺序;排在前面的会优先加载;
2.tomcat启动加载顺序
当我们启动一个tomcat的服务的时候,jar包和claess文件是是以怎么样的顺序被加载进来的?
加载顺序:
1. $java_home/lib 目录下的java核心api
2. $java_home/lib/ext 目录下的java扩展jar包
3. java -classpath/-Djava.class.path所指的目录下的类与jar包
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文件就不会被加载了。
3.设置 classpath
设置多个类路径;多个类路径以分号分隔
D:> java -classpath C:javaMyClasse1;C:javaMyClass2 com.yiibai.MainApp
设置多个jar的路径顺序:多个jar使用 英文冒号进行分割
-classpath /data/tomcat_8081/bin/bootstrap.jar:/data/tomcat_8081/bin/tomcat-juli.jar
4.代码查看 classpath
String javaClassPath = System.getProperty("java.class.path");
log.error("----- {}",javaClassPath);
相关文章
- 深入探讨Java中的异常与错误处理
- 研究学习Kotlin的一些方法
- 数据显示Java热度持续下落,日子屈指可数?
- 2017年5月编程语言排行榜:Java与C语言优势正开始缩小
- Java多线程之内置锁与显示锁
- Java线程池的理论与实践
- 白话阿里巴巴Java开发手册(编程规约)
- 关于Java你不知道的十件事
- Java服务化系统线上应急和技术攻关,你必须掌握的Linux命令
- Java实现高斯模糊和图像的空间卷积
- Java阻塞队列实现原理分析
- NPM使用技巧
- Node.js对Java开发者而言是什么?
- Java反射机制应用实践
- 理解RxJava中的Single和Completable
- 2017年你不能错过的Java类库
- 大规模集群下的Hadoop NameNode
- 从源码解密Spark内存管理
- 2017年3月编程语言排行榜:Swift首次进入前十
- JVM热点技术:Java类的加载机制