posts - 167,  comments - 30,  trackbacks - 0

          大家肯定在安裝JDK的時候會有選擇是否安裝單獨的jre,一般都會一起安裝,我也建議大家這樣做。因為這樣更能幫助大家弄清楚它們的區(qū)別:

          Jre 是java runtime environment, 是java程序的運行環(huán)境。既然是運行,當然要包含jvm,也就是大家熟悉的虛擬機啦,還有所有java類庫的class文件,都在lib目錄下打包成了jar。大家可以自己驗證。至于在windows上的虛擬機是哪個文件呢?學過MFC的都知道什么是dll文件吧,那么大家看看jre/bin/client里面是不是有一個jvm.dll呢?那就是虛擬機。

          Jdk 是java development kit,是java的開發(fā)工具包,里面包含了各種類庫和工具。當然也包括了另外一個Jre. 那么為什么要包括另外一個Jre呢?而且jdk/jre/bin同時有client和server兩個文件夾下都包含一個jvm.dll。說明是有兩個虛擬機的。這一點不知道大家是否注意到了呢?

          相信大家都知道jdk的bin下有各種java程序需要用到的命令,與jre的bin目錄最明顯的區(qū)別就是jdk下才有javac,這一點很好理解,因為 jre只是一個運行環(huán)境而已。與開發(fā)無關,正因為如此,具備開發(fā)功能的jdk自己的jre下才會同時有client性質的jvm和server性質的 jvm, 而僅僅作為運行環(huán)境的jre下只需要client性質的jvm.dll就夠了。

          記得在環(huán)境變量path中設置jdk/bin路徑麼?這應該是大家學習Java的第一步吧,老師會告訴大家不設置的話javac和java是用不了的。確實jdk/bin目錄下包含了所有的命令。可是有沒有人想過我們用的java命令并不是 jdk/bin目錄下的而是jre/bin目錄下的呢?不信可以做一個實驗,大家可以把jdk/bin目錄下的java.exe剪切到別的地方再運行 java程序,發(fā)現(xiàn)了什么?一切OK!

          那么有人會問了?我明明沒有設置jre/bin目錄到環(huán)境變量中啊?

          試想一下如果java為了提供給大多數(shù)人使用,他們是不需要jdk做開發(fā)的,只需要jre能讓java程序跑起來就可以了,那么每個客戶還需要手動去設置環(huán)境變量多麻煩啊?所以安裝jre的時候安裝程序自動幫你把jre的java.exe添加到了系統(tǒng)變量中,驗證的方法很簡單,大家看到了系統(tǒng)環(huán)境變量的 path最前面有“%SystemRoot%\system32;%SystemRoot%;”這樣的配置,那么再去Windows/system32下面去看看吧,發(fā)現(xiàn)了什么?有一個java.exe。

          如果強行能夠把jdk/bin挪到system32變量前面,當然也可以迫使使用jdk/jre里面的java,不過除非有必要,我不建議大家這么做。使用單獨的jre跑java程序也算是客戶環(huán)境下的一種測試。

          這下大家應該更清楚jdk和jre內部的一些聯(lián)系和區(qū)別了吧?

          PS: 其實還有滿多感想可以總結的,一次寫多了怕大家扔磚頭砸死我,怪我太羅唆。大家應該更加踏實更加務實的去做一些研究并互相分享心得,大方向和太前沿的技術討論是必要的但最好不要太多,畢竟自己基礎都還沒打好,什么都講最新版本其實是進步的一大障礙!
          posted on 2010-08-16 14:39 David1228 閱讀(223) 評論(0)  編輯  收藏 所屬分類: JAVA

          <2010年8月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章檔案

          新聞分類

          新聞檔案

          相冊

          收藏夾

          Java

          Linux知識相關

          Spring相關

          云計算/Linux/虛擬化技術/

          友情博客

          多線程并發(fā)編程

          開源技術

          持久層技術相關

          搜索

          •  

          積分與排名

          • 積分 - 359318
          • 排名 - 154

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 张北县| 扶绥县| 枣强县| 邵阳县| 陇西县| 纳雍县| 晋城| 定南县| 亚东县| 乌拉特前旗| 曲靖市| 琼结县| 无极县| 台安县| 泰宁县| 英德市| 修水县| 长泰县| 二连浩特市| 上犹县| 连城县| 平遥县| 怀远县| 辽中县| 永昌县| 侯马市| 宁强县| 武夷山市| 昌平区| 全州县| 内丘县| 芦山县| 古交市| 荔浦县| 万荣县| 苏州市| 茂名市| 合阳县| 苗栗县| 密云县| 抚远县|