扫描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);​​​​​​​
        }​​​​​​​
    }​​​​​​​

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
zxing是一个开源的条形码和二维码扫描库,这个库由Google开发并维护。它提供了多种编程语言的API,包括Java、C++、Python等。 为了使用zxing库,我们需要将其jar包导入到我们的项目中。jar包Java Archive的缩写,是Java中用来打包和发布一组相关类、资源和元数据的文件格式。 zxing的jar包包含了库的所有源代码以及依赖的类库。它是一个可执行的文件,可以通过双击运行,也可以通过命令行或其他方式与它进行交互。将zxing的jar包导入到我们的项目中后,我们就能够使用其中提供的功能来扫描和识别条形码和二维码。 在使用zxing的jar包之前,我们需要先下载它,并将其添加到项目的类路径中。这样,我们就可以在代码中引用zxing的类和方法,并调用其功能来实现条形码和二维码的扫描。 使用zxing库进行扫描时,我们需要使用它提供的API来初始化一个扫描器实例,并将其绑定到我们想要扫描的图像来源,如摄像头或图像文件。之后,我们就可以通过调用扫描器实例的方法来进行扫描,zxing库会自动识别和解码扫描到的条形码或二维码,并将结果返回给我们。 总而言之,zxing的jar包是一个包含了开源的条形码和二维码扫描库的可执行文件,通过将其导入到我们的项目中,我们可以使用其中提供的API和功能来实现条形码和二维码的识别与解码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值