查找冲突的jar文件
2013-11-18 20:36
260 查看
我们经常会遇到启动程序报错。jar包冲突的情况。
但是怎么知道冲突的类在哪些jar包里面呢。
一般报错都会有相类的冲突类。
把这个类拷贝放在下面的程序中:className
然后指定你项目的lib目录地址。
run !
package com.whaty.util;import java.util.*;import java.io.*;public class JarClassFind { public static int count = 0; static public void main(String[] args) { /* * if (args.length < 2) { showHowToUsage(); return; } */ String className = "DocumentBuilderFactoryImpl"; // 要查询的class,要带包名的类名 String libPath = "E:/myeclipse65/bzz2/WebRoot/WEB-INF/lib"; // 所要查找的JAR包的目录 String absoluteclassname = className.replace('.', '/') + ".class"; System.out.println("Find class [" + className + "] in Path [" + libPath + "] Results:"); FindClassInLocalSystem(libPath, absoluteclassname); if (JarClassFind.count == 0) { System.out.println("Error:Can't Find Such Jar File!"); } System.out.println("Find Process Ended! Total Results:" + JarClassFind.count); } private static void FindClassInLocalSystem(String path, String classname) { if (path.charAt(path.length() - 1) != '\\') { path += '\\'; } File file = new File(path); if (!file.exists()) { System.out.println("Error: Path not Existed! Please Check it out!"); return; } String[] filelist = file.list(); for (int i = 0; i < filelist.length; i++) { File temp = new File(path + filelist[i]); if ((temp.isDirectory() && !temp.isHidden() && temp.exists())) { FindClassInLocalSystem(path + filelist[i], classname); } else { if (filelist[i].endsWith("jar")) { try { java.util.jar.JarFile jarfile = new java.util.jar.JarFile(path + filelist[i]); for (Enumeration e = jarfile.entries(); e.hasMoreElements();) { String name = e.nextElement().toString(); if (name.equals(classname) || name.indexOf(classname) > -1) { System.out.println("No." + ++JarClassFind.count); System.out.println("Jar Package:" + path + filelist[i]); System.out.println(name); } } } catch (Exception eee) { } } } } } public static void showHowToUsage() { System.out.println("Usage: Java -cp. JarClassFind <source path> <source class name>"); System.out.println("Usage: Java -classpath. JarClassFind <source path> <source class name>"); System.out.println(""); System.out.println("<source path>:\t\tPath to Find eg:D:\\Jbuilder"); System.out.println("<source class name>:\tClass to Find eg:java.applet.Applet"); }}
相关文章推荐
- 查找一个Class到底在那一个jar文件里
- log4j jar包冲突导致 无日志文件产生
- jar包里查找指定的class文件,排查是否存在或重复,工具软件:Java Class Finder
- java如何在项目依赖的jar包中查找冲突的类
- 一点解决版本冲突的应急思路、怎样在所有 jar 包文件中搜索冲突的方法
- pom.xml文件中引入jar包冲突解决方法
- 如何在bat文件中查找jar包,动态设置classpath
- jsp-api.jar文件 与tomcat中同名包冲突出现 java.lang.NullPointerException
- @IntelliJ IDEA查找依赖关系,解决jar包冲突
- 怎么判断jar包是否冲突了呢?即我怎么知道import的是不是我想要的class文件呢?
- Maven查找依赖树,解决jar包冲突问题
- 查看Class从那个jar文件加载及在jar文件中查找Class
- Linux常用自定义脚本系列(find-in-jar) - 在当前目录中查找包含着某个类的所有jar文件
- 在压缩文件中查找文件/如何查找java所在的jar包
- jar文件版本冲突的最佳解决方案
- weblogic部署web项目jar文件冲突
- Linux 查找文件 查看.jar包
- 查找unity的class.jar文件
- 在多个Jar(Zip)文件查找Log4J配置文件的Shell命令行
- AndroidStudio 相同jar包配置文件冲突(DuplicateFileException)