標籤: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不需要