英文:
How can I ensure that images are included in my .jar package?
问题
我刚刚完成了我的第一个带有GUI的Java程序,并在NetBeans中设置了所有选项,以便项目创建一个.jar文件,目前该文件显示我的窗体并连接到数据库。
我遇到的问题是,当我运行程序时(我必须从终端运行它,因为点击.jar文件可能是问题的一部分?),我的所有图像都不加载。
我尝试过以下方法:
1)进入项目库首选项,并添加位于我的P3Game文件夹(项目的根目录)内的/img文件夹,但没有成功。
2)尝试直接复制图像到生成的/dist文件夹,但然后无法通过库首选项添加图像,因为它不是文件夹或库。
3)在编译后手动复制img文件夹到dist(编译后),并将文件路径设置为dist/img/imgName.png
,这样可以工作,但是,每次构建/编译项目时,dist文件夹中的img文件夹都会被完全清除(只保留内容)
任何帮助都将不胜感激。
编辑1:这是我将图像添加到程序的方式,这在NetBeans中有效,但在其他地方运行程序时无效。
public void setGrassIcon() throws IOException {
this.grassIcon = new ImageIcon(ImageIO.read(new File("img/Grass.png")));
}
英文:
I have just finished my first proper java program with a GUI, and have set all of the options in netbeans in order for the project to create a .jar file which is currently displaying my Frame and connecting to the database.
The issue I am having is that when I run the program (I have to run it from terminal as clicking the .jar might be part of the issue?), none of my images load.
I have tried the following;
- Going into project Library preferences, and adding the /img folder which resides within my P3Game folder (root dir of the project) with no avail.
- Tried directly copying the images to the generated /dist folder but then I cant add the images via the library pref's due to it not being a folder or library.
- Manually copying over the img folder into dist (after compiling) and setting the file path to
dist/img/imgName.png
and it worked, however, any time I build/ compile the project, the img folder within dist gets completely wipes (just the contents)
ANY help would be much appreciated.
EDIT1: this is how im adding the images into the program, and this works from netbeans, but not from running the program elsewhere.
public void setGrassIcon() throws IOException {
this.grassIcon = new ImageIcon(ImageIO.read(new File("img/Grass.png")));
}
</details>
# 答案1
**得分**: 1
如果您从命令行运行,图片必须在您的类路径中:
java -cp "pictures\*"
加载图片的代码是什么样的?
可能是这样的:
Example.class.getResource("pictures/mypic.png");
<details>
<summary>英文:</summary>
If you run from command line, the pictures have to be in your classpath:
java -cp "pictures\*"
How does the code looks like to load the images?
Could look like this:
Example.class.getResource("pictures/mypic.png");
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论