我需要一个文件的URI(我把它放在资源目录中)。如果我使用
MyClass.class.getClassLoader().getResource(resource)
我得到了
java.lang.IllegalArgumentException: URI is not hierarchical
否则,如果我使用ClassLoader.getSystemResource(resource)
,则会返回null
。
答案 0 :(得分:1)
你是从jar里面加载文件的吗?如果是这样,操作系统无法从jar内部形成java File
实例。要加载它,请尝试将其作为Stream打开。 " filepath
"应该以" /
"。
MyClass.class.getClass().getResourceAsStream( filepath );
答案 1 :(得分:0)
您应该使用
的getResourceAsStream(...);
当资源捆绑为jar / war或任何其他单个文件包时。
看到的是,jar是一个单独的文件(有点像zip文件),它们将大量文件放在一起。从Os的pov,它是一个单独的文件,如果你想访问文件的一部分(你的图像文件),你必须将它用作流。