如何从maven获取gif资源
How to get gif resource from maven
我正在制作一个 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)
注:我的OS是Windows。
当我手动导航到该目录时,该文件确实存在。
编辑: file 变量也不为空。
对了!就是这样:
https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html#read(java.net.URL)
使用 Values.class.getClassLoader().getResource("first.gif") 并将其传递给 ImageIO.read()。您也可以将其包装到 InputStream 中。
我正在制作一个 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)
注:我的OS是Windows。
当我手动导航到该目录时,该文件确实存在。
编辑: file 变量也不为空。
对了!就是这样:
https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html#read(java.net.URL)
使用 Values.class.getClassLoader().getResource("first.gif") 并将其传递给 ImageIO.read()。您也可以将其包装到 InputStream 中。