spark大數據蘑菇雲系列文章之填坑記錄: No compiler is provided in this environment錯誤java
好好地,scala for eclipse忽然出現這個錯誤,致使class不能運行,工程不能maven test,更甭說打包測試了。
eclipse
下面是原始的日誌信息:maven
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!ide
[INFO] skip non existing resourceDirectory D:\scalasrc\WebLogAnalysis\src\main\resources函數
[INFO] 測試
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ WebLogAnalysis ---大數據
[INFO] Changes detected - recompiling the module!ui
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!this
[INFO] Compiling 9 source files to D:\scalasrc\WebLogAnalysis\target\classesspa
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.342 s
看這句奇葩的提示:
Perhaps you are running on a JRE rather than a JDK?
兄弟,我怎麼可能沒有jdk呢?
解決流程:
一、驗證JDK安裝:
直接在 cmd 下 javac 而後 java 運行試試,若是這都報錯,那是你的 jdk 或者 os 環境有問題了。
二、修改JRE的路徑:
eclipse菜單 - Window - Preferences- Java - Installed JREs 將配置的JRE定位到JDK,例如JRE home:D:\Program Files (x86)\Java\jdk1.6.0_45
二、ALT+F5 進行 update project 。
三、Debug or Run again.
三、修改源代碼路徑:
是由於.Java文件不在項目的src路徑內,也就是說源代碼未被eclipse編譯,字節碼不存在沒法運行了在項目名上右鍵 -> Builder Path -> Configure Build Path -> 選擇Source面板 再點Add Folder, 把源代碼所在的包路徑的上層目錄加進來,並且若是你是把兩個類寫在一個文件裏的話,你在右鍵選擇Run As Java Appication 的時候,要把光標至於包括main方法的類上
四、查看文件:
打開帶有main函數的類,ctrl +A (全選)---> ctrl +X(剪切)-----> ctrl+S(保存)--->關閉---->再打開--->ctrl +C (粘貼) ---->OK;一句話就是粘出去 關閉 再粘進來
總結:有時候 Eclipse 會發神經,好端端的 project 就這麼編譯不了了,連 Hello World 都會報「找不到或沒法加載主類」的錯誤,我已經遇到好幾回了。