【问题标题】:Get resource in Java在 Java 中获取资源
【发布时间】:2015-07-02 17:07:19
【问题描述】:

我正在尝试设置我的 JFrame 的图标图像。我不知道如何将图像文件作为要加载的资源使用: Toolkit.getDefaultToolkit().getImage(URL);

我听说过 Class#getResource(),但在我的情况下它不起作用,因为我的文件结构是:

com.faris.test.Test.class
com.faris.test.Test2.class
res.icon.png

我的 Test.class 是扩展 JFrame 并试图获取“icon.png”的类,但我不确定如何获取它,因为我的类 (Test.class) 在另一个文件夹中。有什么解决办法吗?

【问题讨论】:

    标签: java swing


    【解决方案1】:

    您的班级在哪个文件夹中并不重要。您可以使用:Test.class.getResource("/res/icon.png");。 确保包含“/” 在路径的开头。

    你真的试过了吗?

    【讨论】:

    • 好的,如果您稍后导出为工件,请记住您必须在 JAR 中包含“res”文件夹。 (在您的 JAR 中创建一个名为“res”的新文件夹,并将 res 文件夹的“目录内容”添加到该文件夹​​中)
    • 没关系,您甚至不必使用 getResource()。仅在将 getResource() 导出到 JAR 后才使用它。现在,您可以只使用new File("res/16x16.png"); 对于您的问题,是的,这就是为什么您必须首先在您的 JAR 中创建一个名为“res”的新文件夹。 (没有选项可以放入实际目录)
    • 我认为这不是一个好习惯(所有源代码都应该在 src 文件夹中)。但是,似乎 src 文件夹中的任何文件夹/文件都会自动编译并放入 JAR 中,因此只需将“res”文件夹移回 src 文件夹即可。如果您担心资源位于 JAR 的根目录中,只需为其创建一个新文件夹(在此图像中:i.imgur.com/hWKkmsP.png)并将“res 的目录内容”拖到新文件夹中。
    • @FarisRehman 如果您希望其他人可以轻松使用您的源代码,请遵循 Maven 标准目录布局。 java源码放在src/main/java,生产资源放在src/main/resources,测试java源码放在src/test/java,测试资源放在src/test/resources。 maven.apache.org/guides/introduction/…
    • 使用 Gradle 或 Maven 等外部构建工具会更有帮助,因为它们可以使用其他 IDE。自定义目录布局和依赖 IDE 的构建链是团队编程的一大难题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2013-01-06
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2011-01-15
    相关资源
    最近更新 更多