以下是我尝试使用的代码。
InputStream in = new BufferedInputStream(Tester.class.getClassLoader().getResourceAsStream("appResources/img/GESS.png"));
Image image=null;
try {
image = ImageIO.read(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(image);
'图像'我正在打印它时为空。
答案 0 :(得分:1)
试试这个:
InputStream in = Tester.class.getResourceAsStream("your/path");
Image image=null;
try {
image = ImageIO.read(in);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(image);
值或your/path
为appResources/img/GESS.png
或/appResources/img/GESS.png
,具体取决于您的maven配置和您为项目设置的目录。
例如,如果您将以下条目添加到pom.xml
文件中:
<resources>
<resource>
<directory>src/main/appResources</directory>
</resource>
</resources>
然后,您可以使用较短的路径获取相同的资源,因为您的程序知道在哪里寻找资源:
InputStream in = Tester.class.getResourceAsStream("img/GESS.png");
Image image=null;
try {
image = ImageIO.read(in);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(image);
答案 1 :(得分:0)
你可以使用InputStream instream = Thread.currentThread()。getContextClassLoader()。getResourceAsStream(&#34; appResources / img / GESS.png&#34;);
答案 2 :(得分:0)
答案 3 :(得分:0)
以下是我用于图像加载的两种实用方法。
public static Image getImage(final String pathAndFileName) {
try {
return Toolkit.getDefaultToolkit().getImage(getURL(pathAndFileName));
} catch (final Exception e) {
//logger.error(e);
return null;
}
}
public static URL getURL(final String pathAndFileName) {
return Thread.currentThread().getContextClassLoader().getResource(pathAndFileName);
}