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 緩存和索引出問題,這種情況還不少。遇到此類問題也不用過多擔心,下面就來講解如何解決。
清除緩存和索引
IntelliJ IDEA 已經自帶提供清除緩存、索引的路口,如上圖標注 1 所示。
一般建議點擊 Invalidate and Restart,這樣會比較干凈。
但是有一個需要提醒的是,如上圖紅圈標注的地方:清除索引和緩存會使得 IntelliJ IDEA 的 Local History 丟失,所以如果你項目沒有加入到版本控制,而你又需要你項目文件的歷史更改記錄,那你最好備份下你的 LocalHistory 目錄。目錄地址在:C:\Users\當前登錄的系統用戶名\.IntelliJIdea14\system\LocalHistory 建議使用硬盤的全文搜索,這樣效率更高。
通過上面方式清除緩存、索引本質也就是去刪除 C 盤下的 system
目錄下的對應的文件而已,所以如果你不用上述方法也可以刪除整個 system
。當 IntelliJ IDEA 再次啟動項目的時候會重新創建新的 system
目錄以及對應項目緩存和索引。
如果你遇到了因為索引、緩存壞了以至於項目打不開,那也建議你可以直接刪除 system
目錄,一般這樣都可以很好地解決你的問題。