我是靠谱客的博主 贪玩柜子,最近开发中收集的这篇文章主要介绍扫描jar包,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • 扫描任务:扫描出给定路径下的jar包,并找出其中的.dll文件

    • 拿到任务需要做什么?

            浅说一下我的方法。无论想要实现什么,我们首先要做的就是明确目标,梳理实现此功能的步骤,把需要实现的步骤细化,一点点的去实现。一开始慢一点没有关系,实现之后就会得到令人满足的成就感。


分步骤来做

  1. 扫面全部目录下的jar包
  2. 解压jar包
  3. 遍历.dll文件
  4. 结果:输出jar包名和.dll文件名

public class Demo1 {
    //输入你想扫描的路径

    public static String topPath = "E:\XXXX\lib";

    /**
     * @param args the command line arguments
     */​​​​​​​
    public static void main(String[] args) throws IOException {​​​​​​​​​​​​​​
        testFileDirOrName(topPath);​​​​​​​​​​​​​​
    }​​​​​​​​​​​​​​

    private static void testFileDirOrName(String path) throws IOException {​​​​​​​
        File dirFile = new File(path);
        //判断抽象路径名中的文件或目录是否存在,存在返回True
        if (dirFile.exists()) {
            //返回抽象路径名数组,path抽象路径名表示的目录中的文件
            File[] files = dirFile.listFiles();​​​​​​​
            if (files != null) {​​​​​​​
                for (File fileChildDir : files) {​​​​​​​
                    //输出文件名或者文件夹名​​​​​​​​​​​​​​
                    String s1 = fileChildDir.getName();
                    //判断是否为目录
                    if (fileChildDir.isDirectory()) {
                        //目录名称为jcef32就跳过
                        if (s1.equals("jcef32")) {​​​​​​​
                            continue;​​​​​​
                        }​​​​​​​​​​​​​​
                        System.out.println(s1+" : 此为目录名");​​​​​​​
                        //通过递归的方式,可以把目录中的所有文件全部遍历出来​​​​​​​
                        //返回抽象路径名的绝对路径名字符串。  ​​​​​​​
                        testFileDirOrName(fileChildDir.getAbsolutePath());​​​​​​​
                    } else if (fileChildDir.isFile()) {​​​​​​​
                        if (path.equals(topPath)) {
                            //如果是topPath路径下的文件就跳过
                            continue;​​​​​​​
                        }​​​​​​​
                        //判断是否存在后缀为.jar的文件
                        if (s1.endsWith(".jar")) {​​​​​​​
                            System.out.println(s1 + " : 此为文件名");​​​​​​​
                            FileName(fileChildDir.getAbsolutePath());​​​​​​​​​​​​​​
                        }​​​​​​​​​​​​​​
                    }​​​​​​​
                }​​​​​​​
            }​​​​​​​
        }​​​​​​​​​​​​​​
    }​​​​​​​


    /**
     * 读取jar包
     * @param path1
     * @throws IOException
     */
    private static void FileName(String path1) throws IOException {​​​​​​​
        File file1 = new File(path1);
        //打开供读取的jar文件
        JarFile jarFile = new JarFile(file1);
        //获取元素条目信息
        Enumeration jarEntries = jarFile.entries();
        //通过jarEntries(enumeration).hasMoreElements()是判断是否还有下一个元素
        while (jarEntries.hasMoreElements()) {​​​​​​​
            //jarEntries.nextElement()得到下一个元素
            process(jarEntries.nextElement());​​​​​​​
        }​​​​​​​​​​​​​​
    }​​​​​​​​​​​​​​

    /**​​​​​​​
     * 筛选.dll文件​​​​​​​
     * @param jarEntries​​​​​​​
     */​​​​​​​
    private static void process(Object jarEntries) {​​​​​​​
        //jarEntry类用于表示 JAR 文件条目
        JarEntry entry = (JarEntry) jarEntries;​​​​​​​
        //返回条目名称​​​​​​​
        String name = entry.getName();​​​​​​​
        if (name.endsWith(".dll")) {​​​​​​​
            System.out.println(name);​​​​​​​
        }​​​​​​​
    }​​​​​​​

}

最后

以上就是贪玩柜子为你收集整理的扫描jar包的全部内容,希望文章能够帮你解决扫描jar包所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部