当前位置: 首页 > 面试题库 >

如何从JAR中提取文件夹

丌官炎彬
2023-03-14
问题内容

我需要在运行时复制一个打包在Jar中的文件夹。我想通过在同样包含在同一文件夹中的类中调用函数来实现。

我试过使用getSystemResource

URL sourceDirUrl = ClassLoader.getSystemResource("sourceDirName"); 
File sourceDir = new File(sourceDirUrl.toURI());

但这不起作用。我可能必须getResourceAsStream递归使用函数。有没有更优雅/前瞻的方式来做到这一点?

万一我必须递归地做它:1.我不想指定硬编码的文件,我想动态地做它2.我不想创建一个单独的档案。我希望此资源与处理该资源的类位于同一个Jar中

谢谢

我最后做了Koziołek的建议。尽管我希望有一个更优雅的解决方案,但是看起来这确实是一个很好的解决方案。


问题答案:

Jar是简单的ZIP文件。您可以使用java.util.zip。*包解压缩文件。



 类似资料:
  • 文件(exe)位于JAR文件中,该文件使用Launch4J包装为exe。 我的可执行文件(包装在EXE中的JAR文件):

  • 问题内容: 我在JAR文件中有一个文件。这,例如。 我该如何访问?我的源代码是: 问题答案: 您不能使用File,因为此文件在文件系统上并不独立存在。相反,您需要getResourceAsStream(),如下所示:

  • 在我的应用程序中,我下载了Android系统的扩展文件- 我尝试将APK扩展Zip库用作: 但是expansionFile总是空的。这个obb文件是用Jobb创建的,用于文件夹obb/file。拉链

  • (我不知道这是否相关,但我应该提到,我的DLL依赖于JAR中同一文件夹中的多个其他DLL文件。不确定JNA是否会自动为我提取它们,但到目前为止,JNA似乎甚至没有提取我实际使用的DLL。) 编辑:查找似乎没有问题。根据输出,当设置为时,将在JAR中找到文件并将其解压缩到temp文件夹中。

  • 在我的maven项目中,我有一个PDF文件,它位于文件夹中。我的函数从文件夹读取PDF文件,并根据用户的数据在文档中添加一些值。 此项目使用打包为文件,并在我的其他Spring Boot应用程序中用作依赖项。 在我的Spring启动项目中,我创建了将在PDF上执行一些工作的类的instace。一旦PDF文件上的所有工作都完成,并且当PDF文件保存在文件系统上时,它始终是空的(所有页面都是空白的)。

  • 问题内容: 我想读取一个文件,该文件位于类路径中所包含的 之一内。我如何读取其中包含的任何文件? 问题答案: 如果要从应用程序内部读取该文件,请使用: 路径以“ /”开头,但这不是文件系统中的路径,而是类路径中的路径。因此,如果你的文件位于类路径“ org.xml”中,并且名为myxml.xml,则路径类似于“ /org/xml/myxml.xml”。 InputStream读取文件的内容。如果需