shaded jar中包冲突定位

no such method Exception

通常遇到no such method Exception就是项目中某些包冲突导致,在idea中可以通过自带的“Show dependencies”或者“maven helper”插件来分析依赖树。但是对于打了fat jar、shaded jar的场景下就比较棘手了,可能在dependency里面根本找不到哪里冲突了,此时可利用类的jar包路径来定位到当前classloader加载的是那个包里面的类。

String className = "org.eclipse.jetty.server.session.SessionHandler";
        className = className.replace('.', '/');
        String resource = "/" + className + ".class";
        URL url = SessionHandler.class.getResource(resource);
        System.out.println(">>>url:" + url.getFile());
# >>>url:file:/C:/Users/xiaoyao/.m2/repository/com/foo/bar/foo-bar/1.0/foo-bar-1.0.jar!/org/eclipse/jetty/server/session/SessionHandler.class
上一篇:java8集合类聚合GroupingBy的妙用


下一篇:Oracle单节点_Grid_Infrastructure_DB_安装过程图解(二/三)