1、在項目上右鍵-->build path---->config build path 選擇本機jdk不要jre
、、、、
若以上不行
2、選擇編譯的方式,在項目上右鍵-->properties--->選擇 java compiler 按照圖中制定jdk
3、在maven項目中制定編譯的方式
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
4、右鍵ruan as ---> run configuartions指定jdk版本
記錄下來遇到的(問題,解決方法),是更有效的解決問題的方式。(原諒我領悟的太晚與懶,從此用更有意義的方法,做一個更有意義的人)
因為遇到了多次,參考同一個方法,原文連接:https://blog.csdn.net/u010512607/article/details/46350813
近兩天在用Eclipse寫代碼的時候突發奇想,把所有生成的 .class 文件統統刪掉,以為只要重新運行就可以重新生成新的 class 文件,哪知道出問題了,控制台提示->錯誤:找不到或無法加載主類……。自己忙活了好久,也沒有有效的解決方法。后來在網上找了找,終於發現了真正的原因。
原來,Eclipse 中的 Java 編譯器是基於 .java 文件的新舊來判斷是否進行編譯。也就是說,一個 .java 文件如果不更新,那么 Eclipse 中的編譯器就不會對其進行再次編譯。
前面提到的刪掉了所有的 .class 文件后點擊運行報錯主要也是這個原因。刪除 .class 文件后,在 .java 文件沒有變化的時候是不會被重新編譯的,那么 JVM 在運行 .class 文件時就找不到 .class 文件,於是就報錯。那么,該怎么解決呢?
我們知道,Eclipse 默認情況下第一次點擊運行圖標或者右鍵->Run As 一個源文件時,會提示如下:
也就是讓我們選擇是否在運行前自動保存源文件,這樣在對源文件進行修改過后就可以立即反映到運行結果中。如果勾上Always save resources before launching,那么每次運行都會判斷文件是否已經更新並進行保存,如果要對其進行設置,可以在 Window->Preferences->Run/Debug->Launching 中進行設置:
而在 Eclipse 中還有一點得注意,如果勾選了在運行前保存源文件,那么,源文件也會被編譯,因為在默認的 Windows->Preferences->General->Workspace 中,有這樣一條:
只要源文件一有變化(保存后)就會自動進行編譯操作,缺點是必須得做點什么然后保存,所以如果源文件中沒有使用到其它 .java 文件中自定義的類的時候,可以對其進行象征性的修改以使其變成新的,然后運行就行了。否則還得把用到的類也進行同樣的操作然后保存運行。
注意,還有但是,這樣做太麻煩了,而且對於一包含大量源文件的工程來說,這么做也不太現實。所以得找一個一勞永逸的解決之道。答案就是:
Project->Clean...
Clean...操作會將該工程以前的所有編譯信息清空,然后默認將所在工程的所有 .java 文件都進行一次編譯,這樣的話就可以方便地進行修改與運行了。
寫了這么多,總結一下關於刪掉 .class 文件運行報錯的幾種解決辦法:
1、對於單個文件,並且沒有使用到在別的 .java 文件中自定義的類,可以對其進行象征性的修改,加空格或者類似的操作,然后保存。如果使用了其它類,那么就得在對應的類中也作修改並保存,或者修改完后一齊保存。
2、簡單粗暴又有效的辦法,Project->Clean...,將所在工程以往的編譯信息都清空並全都重新編譯一次。