【发布时间】:2019-11-29 05:41:40
【问题描述】:
我正在制作一个 Discord 机器人。我已经通过 URL 嵌入了来自互联网的图像,现在我想使用本地保存的图像。
我的问题是我无法将 gif 的资源加载到 Java 应用程序中。
我尝试重命名它们,甚至更多地编辑 pom.xml,可惜没有结果。我尝试使用文件,但没有奏效。
File file = new File(Values.class.getClassLoader().getResource("first.gif").getFile());
System.out.println(file.exists());
System.out.println(file.getPath());
BufferedImage userThumbnailGIF = ImageIO.read(file); //this is Values.java:37
那是我试图从资源中获取文件的地方,这是我的 pom.xml:
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>first.gif</exclude>
</excludes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>first.gif</include>
</includes>
</resource>
</resources>
文件的控制台输出是:
false
C:\Users\It%20is%20all%20ogre%20now\IdeaProjects\ToramBot\target\classes\first.gif
javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(ImageIO.java:1301)
at com.github.zastrixarundell.torambot.Values.setImages(Values.java:37)
at com.github.zastrixarundell.torambot.ToramBot.main(ToramBot.java:65)
注意:我的操作系统是 Windows。
编辑:文件变量也不为空。
【问题讨论】:
-
不要从
File读它,而是从URL读它!