IntelliJ IDEA 首次加載項目的時候,都會建立索引,而建立索引的時間跟項目的文件多少成正比,我也簡單強調了 IntelliJ IDEA 索引的重要性。這裏咱們再對此進行詳細說明索引、緩存對 IntelliJ IDEA 的重要性。緩存
經過《常見文件類型的圖標介紹》章節,你已經認識到 IntelliJ IDEA 下各個文件類型的圖標是什麼樣子的。其中有一個圖標我是專門進行了講解: Java class located out of the source root
。咱們也都知道該圖標是表示 Java 類文件沒有在 Source root
目錄下的文件夾下會顯示此圖標,可是其實還有一種狀況也是會顯示此圖標的。那就是:在 IntelliJ IDEA 建立索引過程當中,全部的 Java類 都是這個圖標,若是你項目大的話很容易觀察到的,幾個文件的小項目卻是不必定會看到。因此在 IntelliJ IDEA 建立索引過程即便你編輯了代碼也是編譯不了、運行不起來的,因此仍是安安靜靜等 IntelliJ IDEA 建立索引完成。版本控制
IntelliJ IDEA 的緩存和索引主要是用來加快文件查詢,從而加快各類查找、代碼提示等操做的速度,因此 IntelliJ IDEA 的索引的重要性我再嘮叨一萬遍都不爲過。可是,IntelliJ IDEA 的索引和緩存並非一直會良好地支持 IntelliJ IDEA 的,這某些特殊條件下,IntelliJ IDEA 的緩存和索引文件也是會損壞的,好比斷電、藍屏引發的強制關機,當你從新打開 IntelliJ IDEA,基本上百分八十的可能 IntelliJ IDEA 都會報各類莫名其妙錯誤,甚至項目打不開,IntelliJ IDEA 主題還原成默認狀態。也有一些即便沒有斷電、藍屏,也會有莫名奇怪的問題的時候,也頗有多是 IntelliJ IDEA 緩存和索引出問題,這種狀況還很多。遇到此類問題也不用過多擔憂,下面就來說解如何解決。code
IntelliJ IDEA 已經自帶提供清除緩存、索引的路口,如上圖標註 1 所示。
blog
通常建議點擊 Invalidate and Restart,這樣會比較乾淨。
可是有一個須要提醒的是,如上圖紅圈標註的地方:清除索引和緩存會使得 IntelliJ IDEA 的 Local History 丟失,因此若是你項目沒有加入到版本控制,而你又須要你項目文件的歷史更改記錄,那你最好備份下你的 LocalHistory 目錄。目錄地址在:C:\Users\當前登陸的系統用戶名\.IntelliJIdea14\system\LocalHistory 建議使用硬盤的全文搜索,這樣效率更高。索引
經過上面方式清除緩存、索引本質也就是去刪除 C 盤下的 system
目錄下的對應的文件而已,因此若是你不用上述方法也能夠刪除整個 system
。當 IntelliJ IDEA 再次啓動項目的時候會從新建立新的 system
目錄以及對應項目緩存和索引。編譯
若是你遇到了由於索引、緩存壞了以致於項目打不開,那也建議你能夠直接刪除 system
目錄,通常這樣均可以很好地解決你的問題。class