试图从jar文件加载图标

10 java jar

我正在尝试从jar文件加载图标.我都试图从jar文件中的类以及jar文件之外的类加载它.

在jarfile之外 - 返回了一个null异常

java.net.URL imageURL = LoadHTMLExample.class.getClassLoader()
    .getResource("icons/mouse.png");
Run Code Online (Sandbox Code Playgroud)

在LoadHTMLExample中的jar文件的一侧

java.net.URL imageURL = this.getClass().getClassLoader()
    .getResource("icons/mouse.png");
Run Code Online (Sandbox Code Playgroud)

得到同样的错误.

我也尝试了各种各样的"图标","/ icons""icons /""/ icons/_mouse.png""icons/mouse.png"

什么似乎没有任何想法

该图标位于jar文件中

jar
 --icons --- {all the images}

 --com.blah.blah
Run Code Online (Sandbox Code Playgroud)

Ste*_*Kuo 5

我一直使用系统类加载器,其路径相对于JAR的根:

URL url = ClassLoader.getSystemClassLoader().getResource("icons/mouse.png");
Icon icon = new ImageIcon(url);
Run Code Online (Sandbox Code Playgroud)


ban*_*ity 5

跳过类加载器,然后将资源作为流获取.如果您不需要URL,可以将它们直接转换为BufferedImages.我已将流和异常处理作为进一步的练习.

InputStream stream = LoadHTMLExample.class
    .getResourceAsStream( "/icons/mouse.png" );
BufferedImage image = ImageIO.read( stream );
Run Code Online (Sandbox Code Playgroud)

提问者需要一个URL,它将我们带回给其他人的建议.图像肯定在罐子里不是吗?