为什么以下代码会抛出此异常?
java.lang.IllegalArgumentException: Invalid URL or resource not found
以下是代码:
File ff=new File("images/a.jpg");
if (ff.exists()) {Image ii=new Image(ff.getPath());}
答案 0 :(得分:1)
来自Javadocs:
URL支持的所有URL都可以传递给构造函数。如果 传递的字符串不是有效的URL,而是一个路径,而不是Image 在那种情况下在类路径上搜索。
您获得的路径是相对路径,但不是(必然)相对于类路径,这是Image
构造函数解释它的方式。
尝试
Image ii=new Image(ff.toURI().toURL().toExternalForm());
或者,取决于您如何设置项目结构
Image ii=new Image(getClass().getResource("images/a.jpg").toExternalForm());
如果图像文件与应用程序一起打包在jar文件中,则第二个版本将起作用。