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 掉。這樣就可以查看源碼了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM