导出到可运行jar后读取图像时出现问题

rta7y2nd  于 2021-06-26  发布在  Java
关注(0)|答案(0)|浏览(187)

这个问题在这里已经有答案了

eclipse导出的runnable jar不显示图像(8个答案)
可运行jars缺少图像/文件(参考资料)(5个答案)
java路径imageicon url.jar(1个答案)
两天前关门了。
我的程序在eclipse中工作得很好,正确地创建了要制作成jlabel的图像,但是当我尝试将程序导出到可运行的jar中时,它就不再工作了。我已经做了一些调试,并设法找出我创建图像返回的方法在导出后不起作用。我假设这是因为使程序成为可运行的jar文件会更改文件的路径,但我对如何修复它一无所知。以下为相关细节,如有帮助,敬请谅解!

// This is the method that calls the method to create the pictures
public static void buildMapper() {
        readPics();
    ...

    // Create JLabel pictures
        JLabel f1 = new JLabel(new ImageIcon(floor1.getScaledInstance(1275, 825, Image.SCALE_SMOOTH)));
    ..
}

private static void readPics() {
        try {
            // Load floors
            floor1 = ImageIO.read(new File("src\\resources\\floor1.png"));
      ...
    }catch(IOException ex){ System.out.println("IO Exception"); }
}
// floor1 is a private static BufferedImage

下面是我如何建立我的项目树。“资源”文件夹只包含我使用过的所有图像,例如 floor1.png 工程浏览器
再次感谢您的帮助!这是我第一次在这么大的范围内做编程项目,涉及到很多我必须自己学习的东西,所以肯定会有很多错误值得我学习!
编辑:我设法修好了。如果有人在挣扎,我的解决办法就是换线 floor1 = ImageIO.read(new File("src\\resources\\floor1.png"));floor1 = ImageIO.read(getClass().getResource("/resources/floor1.png")); . 我还必须使该方法不是静态的,因为不能在静态方法中调用this.getclass()。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题