Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 项目在可执行jar文件后不显示图标_Java_Swing - Fatal编程技术网

Java 项目在可执行jar文件后不显示图标

Java 项目在可执行jar文件后不显示图标,java,swing,Java,Swing,我正在运行NetBeans应用程序,当我通过NetBeans运行它时,它会正确显示图标…但当我将它转换为可执行文件.exe时,它不会显示图标..我做了很多研究来解决这个问题,但一切都白费了。这是我见过的动态获取图标的最好方法。。。。 我的图标是src/com/idoccsmain/icons/以及icons文件夹中的所有我的图标 ImageIcon icon = new ImageIcon(Main.Class.getClass().getResource("/com/idoccsmain/

我正在运行NetBeans应用程序,当我通过NetBeans运行它时,它会正确显示图标…但当我将它转换为可执行文件.exe时,它不会显示图标..我做了很多研究来解决这个问题,但一切都白费了。这是我见过的动态获取图标的最好方法。。。。 我的图标是src/com/idoccsmain/icons/以及icons文件夹中的所有我的图标

  ImageIcon icon = new ImageIcon(Main.Class.getClass().getResource("/com/idoccsmain/icons/"+"add_icon.p‌​ng")
通过这一行,我得到了我所有不同的图标。有人能为我提出任何解决方案吗

用于J2ME应用程序

仔细检查此图像,右键单击项目,然后单击属性

选择应用程序描述符,然后选择MIDlet

如果它在那里显示任何内容,如在这张图片中显示,则相应地进行编辑

注意:-在上述场景中,存在src/myproject/where icon和.java

====更新=====

基于桌面的可执行jar

然后使用这个代码

this.getFrame().setIconImage(new imageIcon(getClass().getClassLoader().getResource("add_icon.p‌​ng")));
注意:只有当图像位于jar文件的根目录下时,这一行才有效。如果没有,则必须在字符串上指定文件夹:

getResource("yourfolder/add_icon.p‌​ng")
您可能还希望创建可执行的java文件,并将图标与之关联。

用于J2ME应用程序

仔细检查此图像,右键单击项目,然后单击属性

选择应用程序描述符,然后选择MIDlet

如果它在那里显示任何内容,如在这张图片中显示,则相应地进行编辑

注意:-在上述场景中,存在src/myproject/where icon和.java

====更新=====

基于桌面的可执行jar

然后使用这个代码

this.getFrame().setIconImage(new imageIcon(getClass().getClassLoader().getResource("add_icon.p‌​ng")));
注意:只有当图像位于jar文件的根目录下时,这一行才有效。如果没有,则必须在字符串上指定文件夹:

getResource("yourfolder/add_icon.p‌​ng")

您可能也对创建可执行的java文件感兴趣,并将图标与之关联。

感谢各位的响应,在你们的帮助下,我提出了这个。。。解决方案 将图像放入Src文件夹,例如Src/icons/和icons文件夹内

而不是在netbeans中使用这一行来让图像正常工作

 ImageIcon icon = new ImageIcon(getClass().getResource("/icons/AnyIconName.png"));

确保每个图标都使用这一行。

感谢大家的回复,在你们的帮助下,我想出了这个。。。解决方案 将图像放入Src文件夹,例如Src/icons/和icons文件夹内

而不是在netbeans中使用这一行来让图像正常工作

 ImageIcon icon = new ImageIcon(getClass().getResource("/icons/AnyIconName.png"));


并确保对每个图标都使用这一行。

检查图标是否真的添加到了。您尝试过吗??如果您的问题已解决,请接受此答案。请创建一个小的独立程序来说明您的问题,并将其发布在此处。检查图标是否真的添加到了。您是否尝试过??如果你的问题解决了,那么接受这个答案。请创建一个小,这是一个独立的程序,说明了您的问题,并将其发布到此处。感谢您的努力,但brother我使用的是net beans 7.2.1,您在项目属性中指定的应用程序描述符中没有此选项。这是移动应用程序吗?不,不,这是桌面应用程序。很抱歉,我的问题中出错了。它是.exe文件但是当我使用getClass.getClassLoader.getResourcecom/Idoccs/icons/+add_icon.png;它给了我错误…如果我删除getClassLoader,它会说ok…其次,我试图用jsmooth生成.exe…然后会留下注释..我已经用getClass.getResource尝试了AdvanceInstaller。。。它不起作用..感谢我们的努力,但是兄弟,我使用的是NetBeans 7.2.1,并且在项目的属性中没有此选项您指定的应用程序描述符..这是移动应用程序吗?不,不,这是桌面应用程序。很抱歉,在我的问题中出错了。它是.exe文件。我正在尝试,但当我使用getClass.getClassLoader.getResourcecom/idocs/icons/+add_icon.png;它给了我错误…如果我删除getClassLoader,它会说ok…其次,我试图用jsmooth生成.exe…然后会留下注释..我已经用getClass.getResource尝试了AdvanceInstaller。。。它不起作用..这会用非源文件污染src目录。IMO的一个更干净的解决方案是修改build.xml文件以覆盖一个适当的目标,我认为它叫做-pre-build,将图标复制到build目录中,以便它们将包含在jar文件中。好主意。。。!我将尝试使用非源文件处理src目录。IMO的一个更干净的解决方案是修改build.xml文件以覆盖一个适当的目标,我认为它叫做-pre-build,将图标复制到build目录中,以便它们将包含在jar文件中。好主意。。。!我会试试的