概述
-
扫描任务:扫描出给定路径下的jar包,并找出其中的.dll文件
-
拿到任务需要做什么?
浅说一下我的方法。无论想要实现什么,我们首先要做的就是明确目标,梳理实现此功能的步骤,把需要实现的步骤细化,一点点的去实现。一开始慢一点没有关系,实现之后就会得到令人满足的成就感。
-
分步骤来做
- 扫面全部目录下的jar包
- 解压jar包
- 遍历.dll文件
- 结果:输出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包所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复