2016-09-27 138 views
1

我曾尝试使用的getClass()。的getResourceAsStream( “/文件夹”)返回null

getClass().getResourceAsStream("/folderName")列出的jar文件夹中的文件交回null

getClass().getResourceAsStream("folderName/fileName")null

有什么区别?

它工作在食,但不是在jar文件

+0

除了丢失的前导'/',你可以发布你的应用程序的目录结构吗?请制作[mcve]。 – Tunaki

+3

文件夹不存在于jar文件中。你不能在一个罐子里面列出文件夹。 – bmargulies

+0

将jar文件的内容列表添加到问题中。 –

回答

0

你告诉Class Loader定位在"/folderName"文件(资源),这是根(绝对)。虽然"folderName"是(相对)当前文件夹中的类位于

加:

  • getClass().getResourceAsStream()使用系统类加载器。不是加载父类的类加载器。

  • 使用Example.class.getResourceAsStream()并且您应该能够访问资源。

  • 另外,如果您在对JAR进行模糊处理,则无法使用静态路径。
相关问题