gpt4 book ai didi

java - 如何在项目中打包资源文件

转载 作者:行者123 更新时间:2023-11-30 09:30:53 24 4
gpt4 key购买 nike

我不确定我这样做是否正确。我想在我的 Java 项目中有一个包含一堆文本文件的文件夹或包。在代码中,我想列出文件夹中的所有文件,并能够读取它们。我希望这些资源文件成为我项目目录结构的一部分(以便它们可以通过我的源代码进行版本控制)。

我看过 ClassLoader.*resource 方法,但无法在我的源目录中识别文件夹并列出其内容...

顺便说一句,我正在使用 Eclipse。有人知道如何实现这个目标吗?

谢谢

==========================================

更新:

感谢您的回复!我发现通过添加源文件夹,我只能通过名称访问里面的文件。然而,这不符合我的需求,因为文件夹的内容会发生变化,我希望能够动态读取所有内容,而不必在每次内容更改时都更改读取逻辑。我尝试为源文件夹中的常规文件夹创建一个文件并遍历它的内容。只要在 Eclipse 中运行,它就可以工作,但根据 Edwin 的评论,当我导出到 JAR 时,这将不起作用,所以我回到原点。

我在想,必须有一种方法可以在我的项目中包含我可以通过编程方式访问的资源文件(Android 会这样做,它是基于 java 的,对吧?)。那么有没有另一种方法来创建一个包含一堆文件的“资源”包,我可以在运行时访问这些文件而无需更新代码来查找每个文件?我真的不想把这个文件夹从我的源代码中分离出来并将它保存在不同的位置,因为这会使部署复杂化......有人有什么想法吗?

谢谢

====================================

解决方法:

我刚刚意识到 Android 会在编译时清点它的资源文件,以便它们在运行时可用。所以这可能是要走的路:我将向我的 Ant 脚本添加一个步骤,该脚本写入一个文件(始终命名相同以便我可以访问它),其中包含我的文件夹中的文件列表。这样我就会知道所有可用资源文件的名称。感谢埃德温的帮助:)

最佳答案

确保您的资源文件夹是 Eclipse 构建路径对话框中的源文件夹。然后您将能够使用您在问题中提到的 ClassLoader 方法加载它们。

enter image description here

如果您使用此技术,源文件夹中的每个子文件夹都被视为一个包。因此,请务必在加载资源时考虑到这一点。

该技术基本上确保该文件夹中的所有Java文件都被编译并放置在分发文件夹下。任何其他文件都只是从该文件夹复制到分发文件夹(即 bin 或 classes 文件夹)。

稍后,当您将项目打包到 jar 或 war 中时,您必须确保这些文件包含在打包文件中。

关于java - 如何在项目中打包资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13089335/

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