Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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 在eclipse中将项目构建为可执行jar文件时不呈现缓冲图像_Java_Eclipse_Bufferedimage_Executable Jar - Fatal编程技术网

Java 在eclipse中将项目构建为可执行jar文件时不呈现缓冲图像

Java 在eclipse中将项目构建为可执行jar文件时不呈现缓冲图像,java,eclipse,bufferedimage,executable-jar,Java,Eclipse,Bufferedimage,Executable Jar,所以,我正在为我的编程课做一个基于2D瓷砖的游戏。我已经完成了在游戏中渲染图像和移动的基础知识。当我在eclipse中运行项目时,我的所有图像都能正常工作。当我将其构建为一个可执行jar文件时,没有一个图像显示出来 这就是它的外观(当我在eclipse中使用当前设置运行它时) 这就是我运行可执行jar时发生的情况 我的图像加载在资产类中,如下所示: SpriteSheet sheet = new SpriteSheet(ImageLoader.ImageLoader("/textures/sh

所以,我正在为我的编程课做一个基于2D瓷砖的游戏。我已经完成了在游戏中渲染图像和移动的基础知识。当我在eclipse中运行项目时,我的所有图像都能正常工作。当我将其构建为一个可执行jar文件时,没有一个图像显示出来

这就是它的外观(当我在eclipse中使用当前设置运行它时)

这就是我运行可执行jar时发生的情况

我的图像加载在资产类中,如下所示:

SpriteSheet sheet = new SpriteSheet(ImageLoader.ImageLoader("/textures/sheet.png"));
这是图像加载器:

public class ImageLoader 
{
public ImageLoader()
{

}
public static BufferedImage ImageLoader(String path)
{
    try {
        return ImageIO.read(ImageLoader.class.getResource(path));
    } catch (IOException ex) {
        ex.printStackTrace();
        System.exit(1);
    }
    return null;
}
}
我在构建路径中指定的两个文件夹是src和res。 我知道它正在将图像构建到罐子中,因为如果我提取它,我可以看到它们


你知道我搞砸了什么吗?

很确定你需要在构建路径中添加一个Res文件夹

Res文件夹是所有精灵工作表的存放位置

右键单击项目并编辑生成路径

尝试将纹理文件夹添加到构建路径中

编辑
文件夹不需要命名为“Res”

打开jar,例如使用7Zip、WinZip或eclipse。路径
“/textures/sheet.png”
应该在那里。而且它区分大小写(与Windows相反)。构建为可执行jar只需向清单文件添加一个条目ImageLoader方法应命名为ImageLoader。应从imageLoader方法中删除System.exit调用。如果textures目录位于Java类路径中,则路径名为“/sheet.png”。看见