如何确保图像包含在我的.jar包中?

问题描述

我刚刚用GUI完成了我的第一个正确的Java程序,并在netbeans中设置了所有选项,以便该项目创建一个.jar文件,该文件当前正在显示我的Frame并连接到数据库。 我遇到的问题是,当我运行程序时(我必须从终端运行它,因为单击.jar可能是问题的一部分?),我的图像均未加载。 我已经尝试了以下方法

  1. 进入项目库首选项,并添加/ img文件夹,该文件夹位于我的P3Game文件夹(项目的根目录)中,无济于事。
  2. 试图直接将图像复制到生成的/ dist文件夹中,但是由于它不是文件夹或库,因此我无法通过库首选项添加图像。
  3. 手动将img文件夹复制到dist(编译后)并将文件路径设置为dist/img/imgName.png,并且可以正常工作,但是,每当我构建/编译项目时,dist中的img文件夹都会被完全擦除(只是内容

任何帮助将不胜感激。

EDIT1:这是将图像添加到程序中的方式,它可以在netbeans中运行,但不能在其他地方运行程序。

public void setGrassIcon() throws IOException {
        this.grassIcon = new ImageIcon(ImageIO.read(new File("img/Grass.png")));
}

解决方法

如果从命令行运行,则图片必须位于类路径中:

java -cp "pictures\*"  

代码看起来如何加载图像? 可能看起来像这样:

Example.class.getResource("pictures/mypic.png");