【问题标题】:Java project with image files带有图像文件的 Java 项目
【发布时间】:2017-05-30 17:22:05
【问题描述】:

我正在开发一个使用图像文件的项目。存储带有图像的文件夹的正确位置在哪里?在 src 文件夹内(由 netbeans 创建)还是在外面?此外,当我清理和构建项目时,会创建一个包含 jar 文件的 dist 文件夹。如果我想在另一台计算机上运行程序,图像文件夹是否可以包含在 jar 中,或者我必须将它们复制到与 jar 相同的文件夹中?最后,我想知道当我想从源代码中引用图像文件夹时如何使用getResource。提前致谢。

【问题讨论】:

    标签: java image packages directory getresource


    【解决方案1】:

    存放图片的文件夹的正确位置在哪里?在 src 文件夹内(由 netbeans 创建)还是在外面?

    答案是,视情况而定。如果您希望将图像捆绑在 Jar(也称为嵌入式资源)中,那么它们应该存储在 Netbeans src 目录中。如果您希望它们存储在外部(然后您将负责确保在部署 Jar 时将它们包含在其中),那么它们应该存储在 src 目录之外。

    如果我想在另一台计算机上运行程序,图像文件夹是否可以包含在 jar 中,或者我必须将它们复制到与 jar 相同的文件夹中?

    如果图像存储在src 目录中,它们会自动包含在内,如果它们存储在外部,则需要提供一些自定义 ant 代码来执行所需的操作。

    同样,如果它们存储在外部(到 src 目录),您将完全负责它们的管理

    最后,我想知道当我想从源代码中引用图像文件夹时如何使用getResource。

    BufferedImage img = ImageIO.read(getClass().getResource("{path to images}/{image name}");
    

    有许多可用的资源/示例可以扩展在不同场景中如何使用getResource 的个人要求/差异,但这是基本思想

    【讨论】:

    • 非常感谢您快速准确的回复!不过还有一个问题。在 getResources 中,{path to images} 从哪里开始?例如,如果我在 src 文件夹中有图像,我应该写 "src/images/image.jpg" 吗?如果它位于名为 images 的文件夹中的 src 之外呢?
    • 不行,把路径当成src是root, I should be more like /images/image.jpg. This is then (by the system) appended to each path in the classpath and checked to see if it returns a valid result. The src`路径一旦打包应用就不会存在了
    • 为什么这会引起反对票?它以什么方式不回答 OP 的问题?了解您为什么认为这是一个不恰当的问题将大大有助于我改进它(以及未来的其他问题)
    猜你喜欢
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多