我知道以前曾问过这个问题(或类似问题),但我仍然不明白。我创建了一个具有以下内部结构的jar:
JAR文件配置--- codeBehind
--- commandLine --- gui
-资源
在resources文件夹中,有一张我想用作图标的图像,但是我不知道如何获得它。我试过了
ImageIcon icon = new ImageIcon(getClass().getResource("settings.png"));
setIconImage(icon.getImage());
但是当我尝试访问该图标的图像时,它抛出一个
NullPointerException
。我试图分离命令的各个部分,而getResources("mypic.png")
返回null。关于如何获得它的任何想法?提前致谢!
最佳答案
从the documentation of Class:
在委派之前,使用以下算法从给定资源名称构造绝对资源名称:
如果名称以“ /”('\ u002f')开头,则资源的绝对名称是名称中“ /”之后的部分。
否则,绝对名称的格式如下:
modified_package_name /名称
其中Modifyed_package_name是此对象的软件包名称,用“ /”代替“。”。 ('\ u002e')。
所以你可能想要
getResource("/settings.png")
要么
getResource("/resources/settings.png")
或类似的东西,取决于您的类路径,我相信。