【Java】打印运行环境中某个类引用的jar版本路径
背景
正式环境出现jar版本不匹配问题,不知道正式环境用的哪个jar版本。通过一下可以打印出类调用的jar
// 获取 POIFSFileSystem 类的加载器并打印其来源路径
ClassLoader classloaderPOIFS = org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();
URL resPOIFS = classloaderPOIFS.getResource("org/apache/poi/poifs/filesystem/POIFSFileSystem.class");
String pathPOIFS = resPOIFS != null ? resPOIFS.getPath() : "Not found";
System.out.println("POIFSFileSystem came from " + pathPOIFS);// 获取 WorkbookFactory 类的加载器并打印其来源路径
ClassLoader classloaderWorkbook = org.apache.poi.ss.usermodel.WorkbookFactory.class.getClassLoader();
URL resWorkbook = classloaderWorkbook.getResource("org/apache/poi/ss/usermodel/WorkbookFactory.class");
String pathWorkbook = resWorkbook != null ? resWorkbook.getPath() : "Not found";
System.out.println("WorkbookFactory came from " + pathWorkbook);