gpt4 book ai didi

java - 如何从 JAR 中提取文件夹

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:58 25 4
gpt4 key购买 nike

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

我试过使用 getSystemResource:

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

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

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

谢谢

我最终按照 Koziołek 在下面的建议进行了操作。虽然我希望有一个更优雅的解决方案,但看起来已经很好了。

最佳答案

使用类加载器您无法检索文件夹,因为它不能成为类路径的资源。

有几种可能的解决方案:

  • 使用类加载器 getResource 方法,如果您事先知道要查找的文件名,一个一个地检索文件夹中的所有资源。
  • 将您的完整文件夹打包到一个存档中,您可以使用前面的方法从类加载器中检索该存档。
  • 直接解压缩您的 jar 以检索包含的文件夹。它需要从文件系统中知道 jar 的精确位置。这并不总是可行,具体取决于应用程序,并且不可移植。

我更愿意选择第二种解决方案,它更便携、更灵活,但需要为文件夹内容的所有修改重新打包存档。

关于java - 如何从 JAR 中提取文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5377104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com