java -cp运行之jar包加载顺序问题(非常重要)
有没有经常在项目部署时发生java.lang.NoSuchMethodError、java.lang.ClassNotFoundException与java.lang.NoClassDefFoundError的错误(告诉你,一般都是jar包冲突了),那么怎样排查呢?排查到jar冲突后又怎样解决呢? (非常重要的特:java -cp 是有顺序的!!!) 1. jar冲突故障排查: 以springboot工程为例,只需在使用@SpringBootApplication的入口类上加上: Class<?> c = Class.forName("org.aa.bb.XXClass"); System.out.println(c.getProtectionDomain().getCodeSource().getLocation()) 然后启动,查看打印的jar路径,即就是当前实际加载的那个包下的类。 2. jar加载顺序举例说: a.jar, b.jar 都有 MyTest这个类。 java -cp a.jar:b.jar 那么 这个MyTest 拿到的到底 是哪个jar包的? 答案是...