国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JDK、JRE、JVM之間的關(guān)系
JDK、JRE、JVM之間的關(guān)系
如果安裝了JDK,會(huì)發(fā)同你的電腦有兩套JRE,
一套位于 <JDK安裝目錄>\jre
另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目錄下
后面這套比前面那套少了Server端的Java虛擬機(jī),不過(guò)直接將前面那套的Server端Java虛擬機(jī)復(fù)制過(guò)來(lái)就行了。而且在安裝JDK可以選擇是否安裝這個(gè)位于 C:\Program Files\Java 目錄下的JRE。
如果你只安裝JRE,而不是JDK,那么只會(huì)在 C:\Program Files\Java 目錄下安裝唯一的一套JRE。

JRE的地位就象一臺(tái)PC機(jī)一樣,我們寫好的Win32應(yīng)用程序需要操作系統(tǒng)幫我們運(yùn)行,同樣的,我們編寫的Java程序也必須要JRE才能運(yùn)行。所以當(dāng)你裝完JDK后,如果分別在硬盤上的兩個(gè)不同地方安裝了兩套JRE,那么你可以想象你的電腦有兩臺(tái)虛擬的Java PC機(jī),都具有運(yùn)行Java程序的功能。所以我們可以說(shuō),只要你的電腦安裝了JRE,就可以正確運(yùn)行Java應(yīng)用程序。

1、為什么Sun要讓JDK安裝兩套相同的JRE?
這是因?yàn)镴DK里面有很多用Java所編寫的開發(fā)工具(如javac.exe、jar.exe等),而且都放置在 <JDK安裝目錄>\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è)意思是說(shuō),你輸入javac.exe與輸入
java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main

是一樣的,會(huì)得到相同的結(jié)果。
從這里我們可以證明javac.exe只是一個(gè)包裝器(Wrapper),而制作的目的是為了讓開發(fā)者免于輸入太長(zhǎng)的指命。而且可以發(fā)現(xiàn)<JDK安裝目錄>\lib目錄下的程序都很小,不大于29K,從這里我們可以得出一個(gè)結(jié)論。就是JDK里的工具幾乎是用Java所編寫,所以也是Java應(yīng)用程序,因此要使用JDK所附的工具來(lái)開發(fā)Java程序,也必須要自行附一套JRE才行,所以位于C:\Program Files\Java目錄下的那套JRE就是用來(lái)運(yùn)行一般Java程序用的。

2、如果一臺(tái)電腦安裝兩套以上的JRE,誰(shuí)來(lái)決定呢?
這個(gè)重大任務(wù)就落在java.exe身上。Java.exe的工作就是找到合適的JRE來(lái)運(yùn)行Java程序。
java.exe依照底下的順序來(lái)查找JRE:
自己的目錄下有沒(méi)有JRE;
父目錄有沒(méi)有JRE;
查詢注冊(cè)表:
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]

所以java.exe的運(yùn)行結(jié)果與你的電腦里面哪個(gè)JRE被執(zhí)行有很大的關(guān)系。

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


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



1) Not exactly, java executable is part of one JRE on your path. Unless you put java (.exe?? There is no java.exe on unix) somewhere else.

2) Another problem is if you put two imcompatable JREs on your machine, it might cause your ObjectInputStream corrupted.

3) For developer‘s machine, j2sdk without another JRE is the best choice.
Add one more:

Even j2sdk (JDK is the old name) is free, but it is illegal to distribute j2sdk with your product. Therefore if your product required j2sdk to run. Then you must require your client to download it from Sun and install it before instalation of your product. What a headache!



On the opposite, you can distribute JRE with your application freely.

javac is Sun‘s version of java compiler, not a wrapper. Like any other executables, it uses other libraries such as some dll on windows, some shared libraies on Unix. It also uses some jar files came with it. That is just how it is, and how it works.

It is quite normal, Isn‘t it?

javachina wrote:
1) Not exactly, java executable is part of one JRE on your path. Unless you put java (.exe?? There is no java.exe on unix) somewhere else.

2) Another problem is if you put two imcompatable JREs on your machine, it might cause your ObjectInputStream corrupted.

3) For developer‘s machine, j2sdk without another JRE is the best choice.



java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main

 

javachina wrote:
1) Not exactly, java executable is part of one JRE on your path. Unless you put java (.exe?? There is no java.exe on unix) somewhere else.

2) Another problem is if you put two imcompatable JREs on your machine, it might cause your ObjectInputStream corrupted.

3) For developer‘s machine, j2sdk without another JRE is the best choice.



java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=360157

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JDK,JRE與JVM淺析(整理)
Java中JDK,JRE和JVM之間的關(guān)系
關(guān)于JDK、JRE與JVM
Ubuntu18.04 安裝 JDK7
大數(shù)據(jù)之JDK安裝
談一談|JDK、JRE和JVM的解釋以及聯(lián)系和區(qū)別
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服