Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应用程序图标不在导出的项目后面?_Java_Swing - Fatal编程技术网

Java 应用程序图标不在导出的项目后面?

Java 应用程序图标不在导出的项目后面?,java,swing,Java,Swing,从Eclipse运行应用程序时,我的应用程序图标工作正常,但一旦我将其导出为可运行的jar,它就不会出现 这是我用来设置图标的代码: try { setIconImage(ImageIO.read(new File("resources/icons/icon.png"))); } catch (IOException exc) { exc.printStackTrace(); } 图标位于名为resources/icons的源文件夹中 为什么图标不包含在导出中 现在使用URL,

从Eclipse运行应用程序时,我的应用程序图标工作正常,但一旦我将其导出为可运行的jar,它就不会出现

这是我用来设置图标的代码:

try {
    setIconImage(ImageIO.read(new File("resources/icons/icon.png")));
}
catch (IOException exc) {
    exc.printStackTrace();
}
图标位于名为
resources/icons
的源文件夹中

为什么图标不包含在导出中

现在使用URL,而不是使用
文件
方法查找图标。这太棒了


默认情况下,是否可以更改文件的图标?我想我必须使用资源黑客或类似的东西来改变它。但如果可能的话,通过代码,我很想学习它

您可以使用
getResource
而不是
newfile()
,如下所示:

Icon icon = new ImageIcon(getClass().getResource("resources/icons/icon.png"));
Icon icon = new ImageIcon(getClass().getResource("/com/icons/icon.png"));
因此,您的
setIconImage
应该是这样的:

setIconImage(new ImageIcon(getClass().getResource("resources/icons/icon.png")).getImage());
如果您的图标在软件包内退出,您可以执行以下操作:

Icon icon = new ImageIcon(getClass().getResource("resources/icons/icon.png"));
Icon icon = new ImageIcon(getClass().getResource("/com/icons/icon.png"));
因此,您的
setIconImage
应该是这样的:

setIconImage(new ImageIcon(getClass().getResource("/com/icons/icon.png")).getImage());

希望这能有所帮助。

您是否在构建或导出规范中插入了该文件夹?应用程序资源在部署时将成为嵌入式资源,因此现在就开始访问它们是明智的。必须通过URL而不是文件访问。有关如何形成URL的信息,请参阅。@IQV在eclipse中作为可运行jar导出时,它似乎不是一个选项@AndrewThompson这看起来很有趣,我们将看看这个可能的复制品*如果你的图标在你的包中退出,你可以这样做:
“/com/icons/icon.png”
“实际上,它可以是
“icon.png”
,而“`com/icons/icon.png”
*是相对于当前包**的路径**(不推荐),而
“/com/icons/icon.png”是来自类路径根的路径(最健壮)。