项目构建不正确?还是我?

时间:2011-02-02 22:59:46

标签: java

我使用的是Netbeans IDE,其中一些代码包含在我的

ImageIcon accept_icon = new ImageIcon("src/images/accept.png");

当我在IDE中运行项目时,它显示正常。但是,当我尝试构建项目时,似乎我指定的外部源(图像,模板文件等)不包括在内。是因为我如何指定来源(例如src/images/accept.png)?如果是,我该如何解决这个问题?很抱歉问这么简单的问题,我对java很新。

5 个答案:

答案 0 :(得分:2)

类路径而不是文件系统加载资源。

这样你就不会依赖当前目录,绝对路径......

答案 1 :(得分:1)

如果您正在讨论构建jar然后运行它,那么您必须明确地将资源嵌入jar中,并使用getResourceAsStream()方法来使用它们。

有关详细信息,请参阅here

答案 2 :(得分:1)

请考虑按照教程页面上的示例加载相对于您的类,如下所示:

以下两个摘录来自http://download.oracle.com/javase/tutorial/uiswing/components/icon.html

/** Returns an ImageIcon, or null if the path was invalid. */
protected ImageIcon createImageIcon(String path,
                                    String description) {
    java.net.URL imgURL = getClass().getResource(path);
    if (imgURL != null) {
        return new ImageIcon(imgURL, description);
    } else {
        System.err.println("Couldn't find file: " + path);
        return null;
    }
}
  

在前面的代码片段中,第一个   ImageIcon构造函数的参数   是相对于的位置   当前班级,并将解决   一个绝对的URL。说明   参数是允许的字符串   帮助的辅助技术   视障用户了解什么   图标传达的信息。


您的班级是否在默认包裹中?尝试将图像放在当前类正下方的子文件夹中,然后使用

ImageIcon accept_icon = new ImageIcon("images/accept.png");

答案 3 :(得分:1)

尝试解压缩jar并查看图像是否存在。如果没有,请寻找包装应用程序的正确步骤

答案 4 :(得分:0)

好像你正在使用图像文件的相对路径。尝试将其设为完整(绝对)路径(例如“/root/src/images/accept.png”)并查看是否可以解决您的问题。