在我的项目中,我目前使用eclipse进行设置
但是当我尝试通过调用加载文件“bg.png”时
getClass().getResource("/res/bg.png")
或getClass().getResourceAsStream("/res/bg.png")
我获得了NPE
谁能告诉我这里发生了什么?我从没想过两种方法如何定位文件之间存在很大差异
TIA
答案 0 :(得分:0)
getClass().getResource[AsStream]()
使用类加载器加载资源:与用于根据类路径加载类文件的机制相同的机制。
因此,为了能够加载资源,它必须位于jar文件中或属于类路径的目录下。情况并非如此。
将res
目录移动到src
目录:该文件将位于Eclipse源目录中,Eclipse将"编译"它只需将文件复制到bin / classes /任何目标目录,该目录在运行应用程序时位于类路径中。