我想类似的问题已经被问过了,但我找不到解决方案。我正在使用基于Java Swings的绘画应用程序。我需要创建一个BufferedImage类的实例以保存我所绘制的图像。我想选择一个背景图片,在上面绘制一些东西。我有一些预定义的背景图片,我将它们放在与源文件相同的文件夹中,并在代码中访问它们。当在Netbeans中运行代码时,它可以完美地工作。如果我构建并运行jar文件,则会显示“无法读取输入文件”。我得知我们不能直接访问jar中的文件,因此我使用了以下代码:
InputStream is = this.getClass().getClassLoader().getResourceAsStream("bg3.jpg");
bgfile=ImageIO.read(is);
bgfile是BufferedImage类的一个对象。因此,一旦我将其作为jar文件运行时,会抛出以下IO异常:
无法读取输入文件!
但是,如果我使用winrar打开jar文件,我可以在根目录中找到bg3.jpg文件。如果我将路径设置为“/bg3.jpg”,则jar文件本身不会打开。
因此,我需要一些帮助和解释。提前感谢您的帮助。