如何在java中设置正确的图像路径?

How to set the right path to image in java?

提问人:Amado 提问时间:6/19/2019 最后编辑:soorapadmanAmado 更新时间:6/19/2019 访问量:422

问:

我正在尝试使用 java 中的 paint 方法加载和绘制它,无论我以何种方式编写路径,它总是显示异常

java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)

我将图像与类位于同一文件夹中

这是我加载图像的行

    Image img = ImageIO.read(getClass().getResourceAsStream("pepsi.png"));
Java 绘制图像

评论

0赞 soorapadman 6/19/2019
你检查过这个链接
0赞 Amado 6/19/2019
是的,我仍然遇到同样的异常,我尝试了那里编写的所有解决方案
0赞 ilightwas 6/19/2019
您确定该文件与 java 文件位于同一位置吗?可以位于另一个类文件夹中,请将其放在与此代码运行的类相同的文件夹中。
0赞 Amado 6/19/2019
是的,他们在同一个地方

答:

0赞 user3844834 6/19/2019 #1

检查您的输出文件夹...“百事可乐.png”(可能区分大小写)必须与调用的类文件位于同一文件夹中

评论

0赞 Amado 6/19/2019
它与我提到的文件夹相同
0赞 ilightwas 6/19/2019 #2

尝试像这样测试它。

如果文件是 java 文件,并且我的类位于一个名为

net.ilightwas.MyClass

它应该像

Image img = ImageIO.read(getClass().getClassLoader().getResourceAsStream("net/ilightwas/pepsi.png"));

这可能会帮助您找到错误。

1赞 GameDroids 6/19/2019 #3

看看MKYong的教程。它向您显示将图像放在哪里。 如果要将图像加载为“资源”,则必须将其放在resources文件夹中。您的项目结构是这样的:

MyProject
    +--src
        +--main
            +--java
            |    +-com
            |       +--me
            |           +--Main.java
            +--resources
                 +--pepsi.jpg

在你的类中,你执行该片段:Main

try {
    Image img= ImageIO.read(Main.class.getClassLoader().getResourceAsStream("pepsi.jpg"));
    System.out.println(img.getWidth(null));  //this is just a test, when it prints out the width of your image, you have the right file loaded 
} catch (IOException ex) {
    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}