1. 程式人生 > >JDK和JRE的關系

JDK和JRE的關系

結果 完全 給他 工具包 env 不同的 常用 查看 他會

作者:王博
鏈接:https://www.zhihu.com/question/20317448/answer/14737358
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

JRE: Java Runtime Environment
JDK:Java Development Kit
JRE顧名思義是java運行時環境,包含了java虛擬機,java基礎類庫。是使用java語言編寫的程序運行所需要的軟件環境,是提供給想運行java程序的用戶使用的。
JDK顧名思義是java開發工具包,是程序員使用java語言編寫java程序所需的開發工具包,是提供給程序員使用的。JDK包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了很多java程序調試和分析的工具:jconsole,jvisualvm等工具軟件,還包含了java程序編寫所需的文檔和demo例子程序。
如果你需要運行java程序,只需安裝JRE就可以了。如果你需要編寫java程序,需要安裝JDK。
JRE根據不同操作系統(如:windows,linux等)和不同JRE提供商(IBM,ORACLE等)有很多版本,最常用的是Oracle公司收購SUN公司的JRE版本。如果你想查看更官方的解釋,可以前往Oracle官網: 再說說java的跨平臺吧:
java源程序先經過javac編譯器編譯成二進制的.class字節碼文件(java的跨平臺指的就是.class字節碼文件的跨平臺,.class字節碼文件是與平臺無關的),.class文件再運行在jvm上,java解釋器(jvm的一部分)會將其解釋成對應平臺的機器碼執行,所以java所謂的跨平臺就是在不同平臺上安裝了不同的jvm,而在不同平臺上生成的.class文件都是一樣的,而.class文件再由對應平臺的jvm解釋成對應平臺的機器碼執行 最後解釋下機器碼和字節碼的區別:
一,機器碼,完全依附硬件而存在,並且不同硬件由於內嵌指令集不同,即使相同的0 1代碼,意思也可能是不同的,換句話說,根本不存在跨平臺性。比如:不同型號的CPU,你給他個指令10001101,他們可能會解析為不同的結果

JDK和JRE的關系