如何将 JarEntry 复制到目录

How to copy a JarEntry to a directory

我已经扫描了maven目录(.m2)并过滤了所有以.jar结尾的文件。

List<File> jarFiles = scanRecursivelyForJarObjects(mavenRepository, fileManager);

我正在尝试将 JarFile 中的 .class 文件复制到其他目录。这是代码:

for(File jarFile : jarFiles) {
        Enumeration<JarEntry> enumeration = new JarFile(jarFile).entries();
        while (enumeration.hasMoreElements()) {
            JarEntry jarEntry = enumeration.nextElement();
            if (!jarEntry.isDirectory() && jarEntry.getName().endsWith(".class")) {
                copyFile(new FileInputStream(jarEntry), classesDir.getAbsolutePath() + "\" + jarEntry.getName());
            }
        }
    }

但是当我尝试复制时出现错误,因为 jarEntry 不是文件。

我不确定如何将 jarEntry 转换为文件。

可以获取到入口的输入流

new JarFile(file).getInputStream(jarEntry)
IOUtils.copyStream(jarEntry.getInputStream(), new FileOutputStream(new File(classesDir.getAbsolutePath(), jarEntry.getName())));