[英]Exported Jar file won't read file inside jar
在下面的代码示例中,当我在Eclipse中测试代码时,它可以正常工作。 但是,当我导出jar文件并通过命令行对其进行测试时,它将引发错误: IIOException: Can't read input file!
private BufferedImage img = null;
private String imgSource;
if (img == null)
{
try {
URL url = getClass().getResource("Images/questionMark.png");
System.out.println(url.getPath());
/* This prints: file:/C:/Users/Keno/Documents/javaFile.jar!/javaFile/Images/questionMark.png */
File file = new File(url.getPath());
img = ImageIO.read(file);
imgSource = file.getName();
} catch (IOException e) {
e.printStackTrace();
}
}
我要获取的文件位于javaFile
包内的Images文件夹内。 我注意到一件事可能表明问题所在。
另外,以防万一有人对我应该如何加载文件有更好的建议,我将告诉您我的意图。 我想从罐子中的相对位置(图像文件夹)加载文件。 我想显示它(已经在我的实际代码中完成了),并且还存储了以后要传递给另一个函数的位置(也已经完成了)。
尝试这个
public void test() {
try(InputStream is = getClass().getResourceAsStream("Images/questionMark.png")) {
ImageIO.read(is);
} catch (IOException e) {
e.printStackTrace();
}
}
您应该尝试检查您的类是否与jar中的Images位于同一目录中。
|
|- Your class
|- Images
|- questionMark.png
另外,您是否尝试过直接使用url对象?
File file = new File(url);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.