java 如何查看jar包加载顺序

目录
  • 查看jar包加载顺序
    • 查看具体的class从哪个jar保重加载的
  • jar包中类的加载顺序(类名冲突)
    • javac是用来编译*.java文件的
    • 在windows下,多个jar包用分号隔开

查看jar包加载顺序

查看具体的class从哪个jar保重加载的

在JVM启动时,加上如下参数:

-verbose:class

然后哦就会有如下输出

[Loaded java.util.regex.Pattern from /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre/lib/rt.jar]

jar包中类的加载顺序(类名冲突)

javac是用来编译*.java文件的

如果 .java文件中有import引入的类,那么在编译的时候,也需要这些类,否则报错。

javac -cp a.jar;b.jar; xxxx.java

在windows下,多个jar包用分号隔开

如果a.jar与b.jar都有类com.A。那么执行 java -cp a.jar;b.jar;./ XXX时,哪个jar包在前面,就加载哪个jar包里面的类。

跟类的加载机制有关系。自定义类都是AppClassLoader加载,同一个加载器,一个类只能加载一次。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Spring Boot 配置加载顺序及属性加载顺序

    先给大家介绍下spring boot 配置加载顺序,具体内容如下所示: 使用 Spring Boot 会涉及到各种各样的配置,如开发.测试.线上就至少 3 套配置信息了.Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发.测试.线上环境使用不同的配置. 在 Spring Boot 里面,可以使用以下几种方式来加载配置.本章内容基于 Spring Boot 2.0 进行详解. 1.properties文件: 2.YAML文件: 3.系统环境变量: 4.命令行参数: 等等-- 我们可

  • 实例解析JAVA中代码的加载顺序

    Java中代码的加载顺序所能了解的知识点 类的依赖关系 static代码块的加载时间 继承类中构造器的隐式调用 非static的成员变量初始化时间 main方法和static的加载顺序 测试代码如下: public class App { private static App d = new App(); private SubClass t = new SubClass(); static{ System.out.println("App static");//6 } public

  • Java代码块与代码加载顺序原理详解

    这篇文章主要介绍了Java代码块与代码加载顺序原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本文首先介绍几个基本的名次,然后介绍了三种代码块的特性和使用方法. 在面试大型公司时,如果遇到大型国企或者大的互联网私企,笔试中经常遇到代码块和代码加载顺序的笔试题.这里做一个总结,也方便各位小伙伴飙车不会飘. 名词解释 代码块 由 { } 包起来的代码,称为代码块 静态代码块 由 static { } 包起来的代码,称为静态代码块. 不同类型

  • Java中类的加载顺序剖析(常用于面试题)

    这其实是去年校招时我遇到的一道阿里巴巴的笔试题(承认有点久远了-.-),嗯,如果我没记错的话,当时是作为Java方向的一道选做大题.当然题意没有这么直白,题目只要求你写出程序运行后所有System.out.println的输出结果,其中程序是题目给的,而各个System.out.println的执行顺序不同会导致最后程序输出的结果也不同. 具体的题目我肯定记不清,不过我们可以换个直接的问法,如果类A和类B中有静态变量,静态语句块,非静态变量,非静态语句块,构造函数,静态方法,非静态方法,同时类A

  • java 如何查看jar包加载顺序

    目录 查看jar包加载顺序 查看具体的class从哪个jar保重加载的 jar包中类的加载顺序(类名冲突) javac是用来编译*.java文件的 在windows下,多个jar包用分号隔开 查看jar包加载顺序 查看具体的class从哪个jar保重加载的 在JVM启动时,加上如下参数: -verbose:class 然后哦就会有如下输出 [Loaded java.util.regex.Pattern from /Library/Java/JavaVirtualMachines/jdk1.7.0

  • 浅谈Java 类中各成分加载顺序和内存中的存放位置

    一.什么时候会加载类? 使用到类中的内容时加载:有三种情况 1.创建对象:new StaticCode(); 2.使用类中的静态成员:StaticCode.num=9;  StaticCode.show(); 3.在命令行中运行:java StaticCodeDemo 二.类所有内容加载顺序和内存中的存放位置 利用语句进行分析: 1.Person p=new Person("zhangsan",20); 该句话所做的事情: 1.在栈内存中,开辟main函数的空间,建立main函数的变量

  • tomcat8改了jar加载顺序的踩坑记录

    记录一次调试经历 起因 相同的jar,服务器正常而本地起的项目一直报下图中的错. 解释 首先,这段代码是hibernate执行有参数的hql的过程中报错的,最上面那层,对string进行强转导致的. 看hql及java对象,发现,参数为string,而参数对应的java对象中的字段类型是BigDcimal.猜测可能是问题出现的原因,但相关的代码没有找到,继续看代码.调试 堆栈信息中 bind()方法的作用(和报错有关的),从 中获取type和value,对value进行强转,其中type是在设置

  • Java中类的加载顺序执行结果

    具体代码如下所示: public class Parent { public static int a = parentStaticMethod2(); { System.out.println("父类非静态初始化块"); } static { System.out.println("父类静态初始化块"); } public Parent() { System.out.println("父类的构造方法"); } public static int

  • java 代码块与静态代码块加载顺序

    java 代码块与静态代码块加载顺序 public abstract class ClassLoadingTest { public static void main(String[] args) { User user3 = new User(); } } public class User { public static User user= new User("wang",18); public static void userSay(){ System.out.println(

  • 详解Java中类的加载顺序

    本文介绍的是Java中类的加载顺序,下面来看看详细的介绍: 1.虚拟机在首次加载Java类时,会对静态初始化块.静态成员变量.静态方法进行一次初始化 2.只有在调用new方法时才会创建类的实例 3.类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法:再执行本类继承的子类的初始化块,最后是子类的构造方法 4.类实例销毁时候,首先销毁子类部分,再销毁父类部分 示例 public class Parent { public static int t = par

  • web.xml中servlet, bean, filter, listenr 加载顺序_动力节点Java学院整理

    web.xml 文件中一般包括 servlet, spring, filter, listenr的配置.那么他们是按照一个什么顺序加载呢?加载顺序会影响对spring bean 的调用. 比如filter需要用到 bean ,但是加载顺序是 先加载filter 后加载spring,则filter中初始化操作中的bean为null:首先可以肯定 加载顺序与他们在web.xml 文件中的先后顺序无关. web.xml 中 listener 和 serverlet 的加载顺序为 先 listener

随机推荐