久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      jdk和jre的區(qū)別

      jdk和jre的區(qū)別

      jdk和jre的區(qū)別

      1. 定義

      JRE(Java Runtime Enviroment)是Java的運(yùn)行環(huán)境。面向Java程序的使用者,而不是開發(fā)者。如果你僅下載并安裝了JRE,那么你的系統(tǒng)只能運(yùn)行Java程序。JRE是運(yùn)行Java程序所必須環(huán)境的集合,包含JVM標(biāo)準(zhǔn)實(shí)現(xiàn)及 Java核心類庫。它包括Java虛擬機(jī)、Java平臺核心類和支持文件。它不包含開發(fā)工具(編譯器、調(diào)試器等)。

      JDK(Java Development Kit)又稱J2SDK(Java2 Software Development Kit),是Java開發(fā)工具包,它提供了Java的開發(fā)環(huán)境(提供了編譯器javac等工具,用于將java文件編譯為class文件)和運(yùn)行環(huán)境(提 供了JVM和Runtime輔助包,用于解析class文件使其得到運(yùn)行)。如果你下載并安裝了JDK,那么你不僅可以開發(fā)Java程序,也同時(shí)擁有了運(yùn) 行Java程序的平臺。JDK是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境(JRE),一堆Java工具tools.jar和Java標(biāo)準(zhǔn)類庫 (rt.jar)。

      推薦:《java學(xué)習(xí)

      2. 區(qū)別

      JRE主要包含:java類庫的class文件(都在lib目錄下打包成了jar)和虛擬機(jī)(jvm.dll);JDK主要包含:java類庫的 class文件(都在lib目錄下打包成了jar)并自帶一個(gè)JRE。那么為什么JDK要自帶一個(gè)JRE呢?而且jdk/jre/bin下的client 和server兩個(gè)文件夾下都包含jvm.dll(說明JDK自帶的JRE有兩個(gè)虛擬機(jī))。

      記得在環(huán)境變量path中設(shè)置jdk/bin路徑麼?老師會告訴大家不設(shè)置的話javac和java是用不了的。確實(shí)jdk/bin目錄下包含了所有的命令??墒怯袥]有人想過我們用的java命令并不是jdk/bin目錄下的而是jre/bin目錄下的呢?不信可以做一個(gè)實(shí)驗(yàn),大家可以把jdk /bin目錄下的java.exe剪切到別的地方再運(yùn)行java程序,發(fā)現(xiàn)了什么?一切OK!(JRE中沒有javac命令,原因很簡單,它不是開發(fā)環(huán)境)那么有人會問了?我明明沒有設(shè)置jre/bin目錄到環(huán)境變量中啊?試想一下如果java為了提供給大多數(shù)人使用,他們是不需要jdk做開發(fā)的,只需 要jre能讓java程序跑起來就可以了,那么每個(gè)客戶還需要手動去設(shè)置環(huán)境變量多麻煩啊?所以安裝jre的時(shí)候安裝程序自動幫你把jre的 java.exe添加到了系統(tǒng)變量中,驗(yàn)證的方法很簡單,去Windows/system32下面去看看吧,發(fā)現(xiàn)了什么?有一個(gè)java.exe。

      3. 難點(diǎn)

      如果安裝了JDK,你的電腦就有兩套JRE(JRE本身和JDK中的JRE),前面這套比后面那套少了Server端的Java虛擬機(jī)。

      (1)為什么Sun要讓JDK安裝兩套相同的JRE?這是因?yàn)镴DK里面有很多用Java所編寫的開發(fā)工具(如javac.exe、jar.exe 等),而且都放置在/lib/tools.jar里。如果我們將tools.jar改名為tools1.jar,然后運(yùn)行javac.exe,顯示如下結(jié) 果:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/Main。這個(gè)意思是說,你輸入javac.exe與輸入java -cp c:/jdk/lib/tools.jar com.sun.tools.javac.Main 是一樣的,會得到相同的結(jié)果。從這里我們可以證明javac.exe只是一個(gè)包裝器(Wrapper),而制作的目的是為了讓開發(fā)者免于輸入太長的指命。 而且可以發(fā)現(xiàn)/lib目錄下的程序都很小,不大于29K,從這里我們可以得出一個(gè)結(jié)論。就是JDK里的工具幾乎是用Java所編寫,所以也是Java應(yīng)用 程序,因此要使用JDK所附的工具來開發(fā)Java程序,也必須要自行附一套JRE才行,所以位于JDK目錄下的那套JRE就是用來運(yùn)行一般Java程序 的。

      (2)如果一臺電腦安裝兩套以上的JRE,誰來決定呢?這個(gè)重大任務(wù)就落在java.exe身上。java.exe的工作就是找到合適的JRE來運(yùn) 行Java程序。java.exe依照以下的順序來查找JRE:1)自己的目錄下有沒有JRE;2)父目錄有沒有JRE;3)查詢注冊表: [HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment]。所以java.exe的運(yùn)行結(jié)果與你的電腦里面哪個(gè)JRE被執(zhí)行有很大的關(guān)系。

      (3)JDK–>JRE–>Bin目錄下有兩個(gè)文件夾:server與client,這是真正的jvm.dll所在。 jvm.dll無法單獨(dú)工作,當(dāng)jvm.dll啟動后,會使用explicit的方法(就是使用Win32 API之中的LoadLibrary()與GetProcAddress()來載入輔助用的動態(tài)鏈接庫),而這些輔助用的動態(tài)鏈接庫(.dll)都必須位 于jvm.dll所在目錄的父目錄之中。因此想使用哪個(gè)JVM,只需要設(shè)置PATH,指向JRE所在目錄下的jvm.dll。

      4. 最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK等等。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號