从资源文件夹创建JSON文件时第4行抛出NullPointerException求助
排查资源文件夹JSON文件File对象的NullPointerException问题
嘿,我来帮你揪出这个NPE的问题!结合你提到的场景,第4行抛出空指针,大概率是资源文件路径获取失败或者对资源文件的访问方式不对,给你列几个最常见的排查方向:
检查资源路径是否匹配
如果你用的是类似getClass().getResource("/your-file.json")的代码,先对照截图里的文件夹结构:- Maven/Gradle项目的资源文件默认在
src/main/resources下,比如你截图里的JSON文件如果在resources/config里,路径应该写/config/xxx.json - 别漏了开头的斜杠
/,它代表从资源根目录开始查找;如果不加斜杠,是从当前类所在的包路径开始找
- Maven/Gradle项目的资源文件默认在
注意文件名大小写
有些系统(比如Windows)对文件名大小写不敏感,但一旦打包成JAR或者部署到Linux/macOS环境,大小写不匹配会直接导致找不到文件,返回null。确保代码里写的文件名和截图里的完全一致。警惕JAR包内资源的访问方式
如果你的项目已经打包成JAR,那资源文件是嵌入在JAR内部的,这时候不能用File对象直接访问——因为File只能指向文件系统里的真实文件,而JAR里的内容不是独立的文件。如果是要读取JSON内容,改用输入流的方式:// 替换创建File的代码,用输入流读取 InputStream jsonStream = getClass().getResourceAsStream("/path/to/your.json"); // 后续用JSON解析库(比如Jackson、Gson)从流里读取内容检查类加载器的使用
如果是在静态方法里获取资源,要用YourClassName.class.getClassLoader().getResource(...),而不是getClass()(静态上下文里没有实例,调用getClass会报错或者返回null)。
要是能把第4行的具体代码贴出来,我可以帮你更精准地定位问题哦!
内容的提问来源于stack exchange,提问作者Natalo77
相关产品推荐
相关产品推荐

