我使用的是Netbeans IDE,其中一些代码包含在我的
中 ImageIcon accept_icon = new ImageIcon("src/images/accept.png");
当我在IDE中运行项目时,它显示正常。但是,当我尝试构建项目时,似乎我指定的外部源(图像,模板文件等)不包括在内。是因为我如何指定来源(例如src/images/accept.png
)?如果是,我该如何解决这个问题?很抱歉问这么简单的问题,我对java很新。
答案 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”)并查看是否可以解决您的问题。