Java 应用程序图标不在导出的项目后面?
从Eclipse运行应用程序时,我的应用程序图标工作正常,但一旦我将其导出为可运行的jar,它就不会出现 这是我用来设置图标的代码: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,
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”是来自类路径根的路径(最健壮)。