如何设置java中图片的正确路径?
How to set the right path to image in java?
我正在尝试使用 java 中的 paint 方法加载和绘制它,无论我以何种方式编写路径,它总是显示异常
java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
我将图片与 class
放在同一个文件夹中
这是我加载图像的行
Image img = ImageIO.read(getClass().getResourceAsStream("pepsi.png"));
检查您的输出文件夹...'pepsi.png'(可能区分大小写)必须与您从
调用的 class 文件位于同一文件夹中
试试这样测试。
如果文件来自 java 文件,而我的 class 在名为
的包中
net.ilightwas.MyClass
应该是
Image img = ImageIO.read(getClass().getClassLoader().getResourceAsStream("net/ilightwas/pepsi.png"));
这可能会帮助您找到错误。
看看MKYong's tutorial。它向您展示了放置图像的位置。
如果你想让图片加载为"resource",你必须把它放在资源文件夹中。您的项目结构将是这样的:
MyProject
+--src
+--main
+--java
| +-com
| +--me
| +--Main.java
+--resources
+--pepsi.jpg
并在您的 Main
class 中执行该代码段:
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);
}
我正在尝试使用 java 中的 paint 方法加载和绘制它,无论我以何种方式编写路径,它总是显示异常
java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
我将图片与 class
放在同一个文件夹中这是我加载图像的行
Image img = ImageIO.read(getClass().getResourceAsStream("pepsi.png"));
检查您的输出文件夹...'pepsi.png'(可能区分大小写)必须与您从
调用的 class 文件位于同一文件夹中试试这样测试。
如果文件来自 java 文件,而我的 class 在名为
的包中net.ilightwas.MyClass
应该是
Image img = ImageIO.read(getClass().getClassLoader().getResourceAsStream("net/ilightwas/pepsi.png"));
这可能会帮助您找到错误。
看看MKYong's tutorial。它向您展示了放置图像的位置。 如果你想让图片加载为"resource",你必须把它放在资源文件夹中。您的项目结构将是这样的:
MyProject
+--src
+--main
+--java
| +-com
| +--me
| +--Main.java
+--resources
+--pepsi.jpg
并在您的 Main
class 中执行该代码段:
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);
}