通过几个罐子迭代

时间:2015-04-21 13:28:02

标签: java eclipse jar

我刚制作了一个程序,它遍历一个jar文件,并打印出每个.class文件的所有限定路径名

我的代码如下所示:

public static ArrayList<String> getClassNames(String jarName) {
    ArrayList<String> CorbaClasses = new ArrayList<String>();

        System.out.println("Jar " + jarName );
    try {

        JarInputStream jarFile = new JarInputStream(new FileInputStream(
                jarName));
        JarEntry jarEntry;

        while (true) {
            jarEntry = jarFile.getNextJarEntry();
            if (jarEntry == null) {
                break;
            }
            if (jarEntry.getName().endsWith(".class")) {

                    System.out.println("Found "
                            + jarEntry.getName().replaceAll("/", "\\.").replace(".class", ""));
                CorbaClasses.add(jarEntry.getName().replaceAll("/", "\\."));
                jarFile.close();
            }
        }
        jarFile.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return CorbaClasses;

}

我现在需要的不是只迭代一个jar文件,而是迭代一堆文件夹,每个文件夹中都有一个jar文件,我需要打印出类文件的路径名。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

迭代多个目录/子目录使用以下代码。

File path = new File("your root Directory path");
File [] files = path.listFiles();//return list of all folder plus file in root directory
    for (int i = 0; i < files.length; i++){
        if (files[i].isFile()){ //if it is file do something
            System.out.println(files[i]);
        }else {
            //it is directory go inside to find jar files
            //if inside also directory found make it function and call it recursively
        }
    }