NetBeans 15为何打开缓存只读类而非项目源文件?
问题
我使用NetBeans 15版本搭配JDK 11,在项目中通过Ctrl+点击引用的其他项目类名时,NetBeans会打开该类的只读版本,文件位于NetBeans缓存路径:C:\Users\myUser\AppData\Local\NetBeans\Cache\15\packageName\myProject.jar。目标类所属项目已在我的项目列表中,也存在于本地.m2仓库,且已执行clean and build操作。之前使用NetBeans 12版本时此功能正常,请问为何NetBeans现在无法从源文件打开该类?是否遗漏了配置设置?
已尝试操作:对目标类所属项目执行clean and build。
解决方法
检查项目依赖的引用类型
NetBeans 15在依赖解析逻辑上和12有差异,若当前项目是通过Maven仓库引用目标项目的jar包,而非直接关联源项目,就会优先打开缓存里的只读文件。调整步骤:- 右键当前项目 →
属性→库 - 在
编译标签下,删除从Maven引入的目标项目依赖 - 点击
添加项目,选择目标项目添加为项目依赖
- 右键当前项目 →
清理NetBeans全局缓存
项目build清理不影响NetBeans全局缓存,旧的jar映射可能残留:- 关闭NetBeans
- 删除缓存目录:
C:\Users\myUser\AppData\Local\NetBeans\Cache\15 - 重启NetBeans,等待项目索引完成后再测试
确保目标项目生成源附件
若目标项目未配置生成源jar,NetBeans无法关联到源文件。在目标项目的pom.xml中添加源插件:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.2.1</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> </plugins> </build>执行
clean install重新生成并安装源jar到本地仓库重建项目索引
NetBeans的代码索引可能未同步最新关联信息:- 右键目标项目 →
索引→重建索引 - 索引完成后重启NetBeans测试
- 右键目标项目 →
内容的提问来源于stack exchange,提问作者maxence pecheux
相关产品推荐
相关产品推荐

