首页 > 编程语言 >java 启动查看jar包加载顺序并设置classpath

java 启动查看jar包加载顺序并设置classpath

时间:2023-02-11 11:23:08浏览次数:43  
标签:顺序 java jar classpath class 加载

本文为博主原创,转载请注明出处:

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:\java\MyClasse1;C:\java\MyClass2 com.yiibai.MainApp

  设置多个jar的路径顺序:多个jar使用 英文冒号进行分割

-classpath  /data/tomcat_8081/bin/bootstrap.jar:/data/tomcat_8081/bin/tomcat-juli.jar 

 

标签:顺序,java,jar,classpath,class,加载
From: https://www.cnblogs.com/zjdxr-up/p/17111093.html

相关文章

  • 重拾JAVA——先导片
    前言(废话回忆杀)想写一个重新拾起JAVA的学习记录系列帖,犹记得大学期间的我们报了学校Web兴趣开发班。这个班自愿报名,像极了浪费了很多大学时光,最后的救赎之战;这个班汇集......
  • javax.validation.UnexpectedTypeException: HV000030: No validator could be found
    根据我的项目情况,升级了hibernate的validater依赖后解决了,旧的版本使用的5。<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-......
  • java通过idea启动查看类加载来源信息
    本文为博主原创,转载请注明出处:jdk8环境时,可以在启动的环境中配置:-XX:+TraceClassLoading  进行启动时查看jdk11环境时,可以在启动的JVM环境中配置:  ......
  • JAVA SpringBoot指定端口的几种方式/京鸿通信科技/www.kyohoon.com/15507589165
    SpringBoot指定端口的3种方式(亲测有效)@Value("${server.port}")privateStringport;@GetMapping("/hello")publicStringhello(){LocalDateTime......
  • Java8函数式编程读后总结与感想
    1. 基本信息Java8函数式编程Java8Lambdas:FunctionalProgrammingfortheMasses[英]RichardWarburton著;王群锋译人民邮电出版社,2015年3月出版1.1. ......
  • 神出鬼没java的println方法,导致的问题
    迷幻问题一没有println方法,主线程无法读变量publicclassThreadTest{publicstaticvoidmain(String[]args){Numnum=newNum(0);newT......
  • Java学习之File类的删除功能
    publicbooleandelete()删除由此抽象路径名表示的文件或目录绝对路径和相对路径的区别绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件,例如:/Users/St......
  • 巨坑系列:Java Bean 转 Map 的那些坑
    一、背景有些业务场景下需要将JavaBean转成Map再使用。本以为很简单场景,但是坑很多。二、那些坑2.0测试对象importlombok.Data;importjava.util.Date;@......
  • 在java路径上找不到javax.servlet.http.HttpServlet
    1.将写好的网页代码导入Java中会发现index.jsp文件开头部分出现报错   2.错误提示是找不到java路径问题   3.在项目中鼠标右键进行找到BuildPath选项点击......
  • Java方法
    Java方法Java方法是语句的集合,他们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法再程序中被创建,在其他地方被引用设计方法的......