ToolProvider.getSystemJavaCompiler()获取Java编译器空指针异常
先说结论:JRE目录下的 /lib 目录里的 tools.jar 丢失,可以从对应 JDK 的 /lib 文件里复制一份,也可以重新 Installs JREs ,推荐后者。
学习Java动态编译的时候,免不了获取Java编译器。而运行起来,有个空指针异常。
按住Ctrl点击getSystemJavaCompiler(),会跳转到找不到源码的界面。
Change Attached Source的时候,你就会惊奇的发现你连 tools.jar 包都找不到。众所周知,jre 是Java Runtime Environment,运行环境里连对应的 jar 包都没,自然会报空指针。
最简单的办法就是从 JDK 文件中复制一份过来再次运行。
此时你按住 Ctrl 点击查看源码的时候,仍然会找不到源码,虽然程序可以跑起来。典型的治标不治本。
点击 Eclipse 导航栏的 Window --> Java --> Installs JREs , 把旧的 jre 库 Remove 掉,Add 一个新的,JRE Type 选择 Strandard VM,然后浏览目录,选择 JDK 文件夹(这里表面提示是JRE目录,建议选择JDK文件夹)。
然后点 Finish,回到界面,将新增的 JRE 库前面对号勾选上,Apply and Close 掉。这样就可以查看源码了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!