記一次Eclipse關於JDK和JRE的問題

今天同事遇到個問題,發現import package竟然報錯,可是那個package實際上存在。通常狀況某個類有問題或者是該類中的方法有問題,總會在IDE中顯示一條紅線。可是此次確實是沒有問題。我找到該類所在的子模塊,使用mvn install。這個錯誤我以前遇到過,光update project是沒有用的,update project主要做用是同步。好比,我在父工程中加入其餘第三方插件依賴,有些地方須要它,有的時候,明明已經導入該依賴,但是我卻不能用它。這時,只需update project便可。根據整個項目的大小,須要的時間是不一樣的,若是項目過大,update project的時間可能會過長。html

貼貼關於mvn install的錯誤:java

 

 關鍵信息就是:No compile is provider in this environment.Perhaps you are running on a JRE rather then a JDK面試

翻譯過來的意思是:jvm

在此環境中沒有編譯器提供程序。也許您運行的是JRE而不是JDKide

 

不少篇博客只講如何解決,不講是什麼緣由。工具

固然了,開發經驗多年的小夥伴們一眼就看出了。直接就知道怎麼解決。學習

在此我要說說JDK和JRE的區別,雖然這個也是老生常談,可是這回我要結合這個錯誤,談點不同的。開發工具

JDK和JRE有以下區別:this

相同點:插件

均可以運行JAVA程序,JDK中包含JRE,JRE自己就是Java運行環境。

不一樣點:

JDK全稱爲"JAVA 開發工具包",JRE全稱爲"JAVA運行環境":

 

JRE是java runtime environment(java運行環境)的縮寫。光有JVM還不能讓class文件執行,由於在解釋class的時候JVM須要調用解釋所須要的類庫lib。在JDK的安裝目錄裏你能夠找到jre目錄,

裏面有兩個文件夾bin和lib,在這裏能夠認爲bin裏的就是jvm,lib中則是jvm工做所須要的類庫,而jvm合lib合起來就稱爲jre。因此,當你寫完java程序,也就.java文件時,當其編譯成.class文件後,你能夠 把這個.class文件和jre發給朋友,這樣你的朋友就能夠運行你寫的程序了(jre中有運行.class的java.exe)。

 

JDK:JDK是java development kit(java開發工具包)的縮寫。每一個作java開發的人都會先在機器上裝一個JDK,那 讓咱們看一下JDK的安裝目錄。在目錄下面有六個文件夾、一個src類庫源碼壓縮包、和其餘幾個聲明文件。其中,真正在運行java時起做用的是如下四個文件夾:bin、include、lib、jre。如今咱們能夠看出這樣一個關係,JDK包含JRE,而JRE包含JVM。

 

JRE和JDK比較能夠得出一個結論,就是jdk不須要jre就能夠跑起來,由於它包含jre,而jre不須要jdk也能運行,由於其有運行.class的java.exe。這個也是java面試基礎常考的題目之一。

關於JAVA編譯原理能夠參考個人這篇博客:說說Javac

 

小結:

任什麼時候候都要牢記一個準則,「夯實基礎」。荀子說:"不積跬步無以致千里「。不管是生活仍是學習都是這麼個理。

但願這篇博文,能給你們帶來啓發和幫助。

相關文章
相關標籤/搜索