人人IT網

人人IT網

當前位置: 主頁 > JAVA編程 > JAVA >

根據類查找其所在的jar包

時間:2016-12-02 19:00來源:Internet 作者:Internet 點擊:
package text; import java.io.File; import java.util.ArrayList; import java.util.Enumeration; import

package text;

import java.io.File;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.List;

import java.util.zip.ZipEntry;

import java.util.zip.ZipFile;

 

public class testFindJar {

 

public String className;

 

    public ArrayList jarFiles = new ArrayList();

 

    public testFindJar() {

    }

 

    public testFindJar(String className) {

        this.className = className;

    }

 

    public void setClassName(String className) {

        this.className = className;

    }

 

    public List findClass(String dir, boolean recurse) {

        searchDir(dir, recurse);

        return this.jarFiles;

    }

 

    protected void searchDir(String dir, boolean recurse) {

        try {

            File d = new File(dir);

            if (!d.isDirectory()) {

                return;

            }

            File[] files = d.listFiles();

            for (int i = 0; i < files.length; i++) {

                if (recurse && files[i].isDirectory()) {

                    searchDir(files[i].getAbsolutePath(), true);

                } else {

                    String filename = files[i].getAbsolutePath();

                    if (filename.endsWith(".jar")||filename.endsWith(".zip")) {

                        ZipFile zip = new ZipFile(filename);

                        Enumeration entries = zip.entries();

                        while (entries.hasMoreElements()) {

                            ZipEntry entry = (ZipEntry) entries.nextElement();

                            String thisClassName = getClassName(entry);

                            if (thisClassName.equals(this.className) || thisClassName.equals(this.className + ".class")) {

                                this.jarFiles.add(filename);

                            }

                        }

                    }

                }

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

 

    public List getFilenames() {

        return this.jarFiles;

    }

 

    protected String getClassName(ZipEntry entry) {

        StringBuffer className = new StringBuffer(entry.getName().replace('/','.'));

        return className.toString();

    }

 

    public static void main(String args[]) {

    //根據類查找其所在的jar包

    testFindJar findInJar = new testFindJar("com.ailk.filter.CommonFilter");

        List jarFiles = findInJar.findClass("E:/workspace/newlianc/wadelib_sale/web/WEB-INF/lib", true);

        if (jarFiles.size() == 0) {

            System.out.println("Not Found");

        } else {

            for (int i = 0; i < jarFiles.size(); i++) {

                System.out.println(jarFiles.get(i));

            }

        }

    }

 

}

 


From:ITEYE
頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
欄目列表
推薦內容