jvm、jre、jdk區別


1、jvm:java虛擬機,負責把.class 二進制文件翻譯成不同系統上的機器操作指令。因此JVM實現了java的跨平台運行,它把它可識別的.class 文件在不同平台上翻譯成不同的機器操作指令,可以在windows、linux上等不同平台上運行。jvm負責把class文件加載進內存, 它包含類加載器子系統,運行時數據區:方法區(靜態區)、堆(new的對象)、棧(局部變量和方法的中間結果)、程序計數器、本地方法,垃圾回收系統、執行引擎。

 

2、jre:java運行環境,它包含了jvm和java項目運行所需要的java 類庫,  java.util  java.sql  java.long   java.net 等。如果不編譯只運行,那么有jre就可以了,java 命令負責拉起 JVM。

 

3、jdk:包含jre和編譯等開發java項目所需要的一些工具,這些工具都在 jdk安裝目錄下的 bin目錄下,包括 javac.exe  java.exe  jar.exe  jvisiovm.exe、jconsole 等負責 編譯、運行 和項目調試等。

 

 

      在eclipse中執行 run as java application的時候,其實是調用 jdk的 java exe,javac 命令工具,根據 .classpath 的配置去找項目的本身的class文件和依賴的jar包的文件(classpath 里會去maven倉庫里找依賴的jar包,不是找 targer下的lib包),然后執行的。
     classpath配置的是java類庫的位置以及執行字節碼文件時查找文件的路徑。 Java執行環境本身就是一個平台,執行於這個平台上的程序是已編譯完成的Java程序( 會以.class文件存在)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM