為啥Eclipse需要JDK,而Myeclipse不需要

來源:互聯網
上載者:User

標籤:jvm   虛擬   intern   jdk1.7   目的   成功   nbsp   roc   strong   

1、首先說明的是,eclipse人家需要jre,而不需要jdk,人家內建的有。你只要在你的電腦上安裝一個jre就行。至於jdk,它內建的有
2、eclise也不要求你jdk或者jre配置環境變數,畢竟友不用notepad寫代碼,dos編譯執行
3、myeclise之所以不需你安裝jdk或者是jre,要是應為它均有內建


關於eclipse裡配置的jdk與tomcat裡的版本
如果你eclipse配置使用了1.8的jdk,即編譯用1.8的java
但是你tomcat裡配置的jre確實1.7的
那麼當你給項目不熟項目的時候,他就會報錯,提示你--你用高版本的java(jdk)編寫並編譯的,我版本低執行不了


下邊是eclipse在不同情況下,對jdk或者jre不同的處理

簡析eclipse啟動過程
雙擊eclipse.exe
載入配置一些資訊
尋找javaw.exe、jvm.dll
這裡分幾種情況討論尋找過程
1.安裝了jdk+jre,沒有配置環境變數(jre安裝目錄為"D:\Program Files\Java\jre7\")
首先在exlipse.exe所在目錄的尋找是否有.\jre\bin
若沒有這個目錄
然後遍曆系統內容變數path目錄
在這個目錄找到了"C:\Windows\System32\javaw.exe"
接著尋找jvm虛擬機器
以javaw.exe為當前工作目錄,在javaw.exe下找有沒有
.\j9vm
..\jre\bin\j9vm\
.\client
..\jre\bin\client\
.\server
..\jre\bin\server\
.\classic
..\jre\bin\classic\
.\jrockit
..\jre\bin\jrockit\
如果這些沒有找到,則查註冊表
HKLM\Software\JavaSoft\Java Runtime Environment
讀取版本資訊,讀完之後
讀該版本下RuntimeLib的值,然後尋找有沒有這個目錄
最終找到了D:\Program Files\Java\jre7\bin\client\jvm.dll
以這個jvm.dll所在目錄為準,返回兩層確定jre的目錄為D:\Program Files\Java\jre7\
再尋找jre目錄下有沒有.\lib\i386這個目錄,成功之後開始載入eclipse啟動需要的jar檔案(一般以org.eclipse開頭)
2.安裝了jdk+jre,path為jdk的bin目錄(這裡配置為"D:\Program Files\Java\jdk1.7.0_65\bin\")
首先在exlipse.exe所在目錄的尋找是否有.\jre\bin
沒有這個目錄
然後遍曆系統內容變數path目錄
在這個目錄找到了"D:\Program Files\Java\jdk1.7.0_65\bin\javaw.exe"
接著尋找jvm虛擬機器
以javaw.exe為當前工作目錄,在javaw.exe下找有沒有
.\j9vm
..\jre\bin\j9vm\
.\client
..\jre\bin\client\
尋找到有D:\Program Files\Java\jdk1.7.0_65\jre\bin\client\這個目錄
尋找該目錄是否有jvm.dll
最終找到D:\Program Files\Java\jdk1.7.0_65\jre\bin\client\jvm.dll
以這個jvm.dll所在目錄為準,返回兩層確定jre的目錄為D:\Program Files\Java\jdk1.7.0_65\jre
再尋找jre目錄下有沒有.\lib\i386這個目錄,成功之後開始載入eclipse啟動需要的jar檔案(一般以org.eclipse開頭)
eclipse3.1\plugins\org.eclipse.jdt.source_3.1.0\src\org.eclipse.jdt.core_3.1.0\src.zip|org\eclipse\jdt\internal\compiler
3.安裝了jdk,沒有安裝jre,沒有配置環境變數
首先在exlipse.exe所在目錄的尋找是否有.\jre\bin
沒有這個目錄
然後遍曆系統內容變數path目錄
沒有找到javaw.exe報錯
4.只安裝了jre
情況同1,eclipse會讀取註冊表的值來尋找jre的目錄
問:那麼用Eclipse開發需不需要安裝jdk?如果不需要,那java檔案時如何編譯成class的?
不需要,eclipse的JDT裡內建編譯器,來源程式在eclipse3.1\plugins\org.eclipse.jdt.source_3.1.0\src\org.eclipse.jdt.core_3.1.0\src.zip|org\eclipse\jdt\internal\compiler目錄下(注意自己的版本號碼)
問:"C:\Windows\System32\"為什麼會有javaw.exe這個檔案?
安裝jre的時候安裝程式複製了4個檔案到"C:\Windows\System32\"目錄,分別是Java.exe、javaw.exe、javaws.exe和WindowsAccessBridge.dll.也就是說用java -version命令和java [class檔案名稱]驗證jdk的path環境變數並不靠譜,用javac 命令才是最準確的

問:尋找jre目錄下有沒有.\lib\i386這個目錄的作用?

確定使用的jre是32位的還是64位的,64位的Eclipse不能用32位的jre

 

為啥Eclipse需要JDK,而Myeclipse不需要

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.