參考資料:
http://blog.csdn.net/kindazrael/article/details/7270673
http://docs.oracle.com/javase/7/docs/index.html
JDK and JRE File Structure http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdkfiles.html
JDK = JRE + Tools&Tool APIs
JDK的核心是Java SE API。Java SE API是一些預定義的類庫,開發人員需要用這些類來訪問Java語言的功能。Java SE API包括一些重要的語言結構以及基本圖形,網絡和文件I/O。我們在自己的程序中,調用前輩們寫好的這些Class,來作為我們自己開發的一個基礎。當然,現在已經有越來越多的性能更好或者功能更強大的第三方類庫供我們使用。一般來說,Java API的非I/O部分對於運行Java的所有平台是相同的,而I/O部分則僅在通用Java環境中實現。
JDK的種類:最主流的JDK是Sun公司發布的JDK,除了Sun之外,還有很多公司和組織都開發了自己的JDK,例如IBM公司開發的JDK,BEA公司的Jrocket,還有GNU組織開發的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)運行效率要比Sun JDK包含的JVM高出許多。而專門運行在x86平台的Jrocket在服務端運行效率也要比Sun JDK好很多。
JRE(Java Runtime Environment,Java運行環境),運行JAVA程序所必須的環境的集合。J2RE是Java2 Runtime Environment,即Java運行環境,有時簡稱JRE. 如果你只需要運行Java程序或Applet,下載並安裝它即可。如果你要自行開發 Java軟件,請下載JDK. 在JDK中附帶有JRE.注意由於Microsoft對Java的支持不完全,請不要使用IE自帶的虛擬機來運行 Applet,務必安裝一個JRE或JDK.包含:
1. Java Runtime Environment(JRE)是可以在其上運行、測試和傳輸應用程序的Java平台。它包括Java JVM標准實現、Java平台核心類庫和支持文件。它不包含開發工具——編譯器、調試器和其它工具。
JVM:Java Virtual Mechinal(JAVA虛擬機)。JVM是JRE的一部分,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。JVM有自己完善的硬件架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。JVM 的主要工作是解釋自己的指令集(即字節碼)並映射到本地的 CPU 的指令集或 OS 的系統調用。Java語言是跨平台運行的,其實就是不同的操作系統,使用不同的JVM映射規則,讓其與操作系統無關,完成了跨平台性。JVM 對上層的 Java 源文件是不關心的,它關注的只是由源文件生成的類文件( class file )。類文件的組成包括 JVM 指令集,符號表以及一些補助信息。
2. JRE所需輔助軟件 ——Java Plug-in——以便在瀏覽器中運行applet.
JDK目錄結構
安裝OS:win7 x86
安裝路徑: C:\Program Files\Java
JDK版本:jdk1.7.0_21
//---------------------------JDK開發文件和目錄------------------------------------------------
jdk1.7.0_21
___________|_______________________
| | |
bin lib jre
| | __________|_______________________
java.exe tools.jar | |
javac.exe dt.jar bin lib
javap.exe _________|____ __________ __________|_______ ________ ________
javah.exe | | | | | | | |
javadoc.exe java.exe client server rt.jar ext security applet fonts
java.dll | | charsets.jar |
awt.dll jvm.dll jvm.dll localedata.jar
C:\Program Files\Java\jdk1.7.0_21 -- JDK的根目錄,包含一些軟件版權,聲明,和自述文件,同時包含歸檔了的Java平台源代碼包src.zip
C:\Program Files\Java\jdk1.7.0_21\src.zip -- 歸檔的Java源代碼
C:\Program Files\Java\jdk1.7.0_21\include -- C 語言頭文件 支持 用Java本地接口和Java虛擬機接口 來本機代碼編程
C:\Program Files\Java\jdk1.7.0_21\lib -- Java開發工具要用的一些庫文件,有包含了支持JDK工具的非核心類庫tool.jar,dt.jar 歸檔的 BeanInfo 文件,用於告訴IDE這樣顯示java組件怎樣讓開發者在自己的應用程序中用戶化它們
================C:\Program Files\Java\jdk1.7.0_21\jre================
C:\Program Files\Java\jdk1.7.0_21\jre -- JDK使用的Java運行環境(JRE)的根目錄,這個運行環境實現了Java平台
C:\Program Files\Java\jdk1.7.0_21\jre\bin -- Java平台所要用的工具和庫的可執行文件這些可執行文件和 /jdk1.7.0_21/bin相同的。這個路徑不需要設置 PATH 環境變量 //Java 啟動器工具充當了應用程序啟動器(覆蓋了1.1版本的JDK推出的舊版本JRE工具)
C:\Program Files\Java\jdk1.7.0_21\jre\bin\client -- 包含Java Hotspot(Java性能引擎) Client Virtual Machine 客戶虛擬機要用的DLL文件
C:\Program Files\Java\jdk1.7.0_21\jre\bin\server -- 包含Java Hotspot(Java性能引擎) Server Virtual Machine 服務器虛擬機要用的DLL文件 ----JDK 比 JRE C:\Program Files\Java\jre7\bin多一個server端的java虛擬機。即這個folder “Server” 不存在於JRE下。
C:\Program Files\Java\jdk1.7.0_21\jre\lib -- JRE要用的代碼庫,屬性設置,資源文件。
C:\Program Files\Java\jdk1.7.0_21\jre\lib\rt.jar -- Java 引導類庫(java 核心APIRunTime類)
C:\Program Files\Java\jdk1.7.0_21\jre\lib\charsets.jar -- 字符轉換類庫
C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext -- 默認的Java平台擴展安裝環境
C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext\localedata.jar -- ava.text 和 java.util包要用到的地區數據
C:\Program Files\Java\jdk1.7.0_21\jre\lib\security -- 包含安全管理文件,有安全規則(java.policy)和安全屬性文件(java.security)
C:\Program Files\Java\jdk1.7.0_21\jre\lib\applet -- Java applets 要的Jar包,可以放到lib/applet/目錄,可以節省 applet 類裝載器從本地文件系統裝載 大的applets 所需的applet類時間,減少從網上下載具有相同的保護的時間。
C:\Program Files\Java\jdk1.7.0_21\jre\lib\fonts -- 包含平台所需的TrueType字體文件
================C:\Program Files\Java\jdk1.7.0_21\db================
C:\Program Files\Java\jdk1.7.0_21\db -- db目錄,純Java開發的數據庫 Apache Derby,是一個開源的100%Java開發的關系數據庫
有關 Java DB 的信息,請參見 http://developers.sun.com/prodtech/javadb/。
有關 Derby 的文檔,請參見:http://db.apache.org/derby/manuals/index.html
================C:\Program Files\Java\jdk1.7.0_21\bin================
C:\Program Files\Java\jdk1.7.0_21\bin -- JDK包含的一些開發工具執行文件
C:\Program Files\Java\jdk1.7.0_21\bin\javac.exe -- 基本工具 - Java語言編譯器, 將Java源代碼轉換成字節碼
C:\Program Files\Java\jdk1.7.0_21\bin\java.exe -- 基本工具 - Java應用程序啟動器,直接從類文件執行Java應用程序字節代碼
C:\Program Files\Java\jdk1.7.0_21\bin\javadoc.exe -- 基本工具 - Java API 文檔生成器,從源碼注釋中提取文檔
C:\Program Files\Java\jdk1.7.0_21\bin\apt.exe -- 基本工具 - java 注釋處理器
C:\Program Files\Java\jdk1.7.0_21\bin\appletviewer.exe -- 基本工具 - java applet 小程序瀏覽器,一種執行HTML文件上的Java小程序的Java瀏覽器。
C:\Program Files\Java\jdk1.7.0_21\bin\jar.exe -- 基本工具 - java文件壓縮打包工具
C:\Program Files\Java\jdk1.7.0_21\bin\jdb.exe -- 基本工具 - Java 調試器,debugger,查錯工具
C:\Program Files\Java\jdk1.7.0_21\bin\javah.exe -- 基本工具 - C 頭文件和stub生成器,用於寫本地化方法,例如生產JNI樣式的頭文件。產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件
C:\Program Files\Java\jdk1.7.0_21\bin\javap.exe -- 基本工具 - class文件反編譯工具,顯示編譯類文件中的可訪問功能和數據,同時顯示字節代碼含義。
C:\Program Files\Java\jdk1.7.0_21\bin\extcheck.exe -- 基本工具 - 用於檢測jar包中的問題
C:\Program Files\Java\jdk1.7.0_21\bin\keytool.exe -- 安全工具 - 管理密鑰庫和證書.
C:\Program Files\Java\jdk1.7.0_21\bin\jarsigner.exe -- 安全工具 - 生產和校驗JAR簽名
C:\Program Files\Java\jdk1.7.0_21\bin\policytool.exe -- 安全工具 - 有用戶界面的規則管理工具
C:\Program Files\Java\jdk1.7.0_21\bin\kinit.exe.exe -- 安全工具 - 用於獲得和緩存網絡認證協議Kerberos 票證的授予票證
C:\Program Files\Java\jdk1.7.0_21\bin\klist.exe.exe -- 安全工具 - 憑據高速緩存和密鑰表中的 Kerberos 顯示條目
C:\Program Files\Java\jdk1.7.0_21\bin\ktab.exe.exe -- 安全工具 - 密鑰和證書管理工具
C:\Program Files\Java\jdk1.7.0_21\bin\native2ascii.exe -- Java國際化工具 - 將文本轉化為 Unicode Latin-1。詳情參考http://java.sun.com/javase/6/docs/technotes/tools/windows/native2ascii.html
C:\Program Files\Java\jdk1.7.0_21\bin\rmic.exe -- 遠程方法調用工具 - 生成遠程對象的stubs and skeletons(存根和框架)
C:\Program Files\Java\jdk1.7.0_21\bin\rmid.exe -- 遠程方法調用工具 - Java 遠程方法調用(RMI:Remote Method Invocation) 活化系統守護進程
C:\Program Files\Java\jdk1.7.0_21\bin\rmiregistry.exe -- 遠程方法調用工具 - Java 遠程對象注冊表
C:\Program Files\Java\jdk1.7.0_21\bin\serialver.exe -- 遠程方法調用工具 - 返回類的 serialVersionUID.
C:\Program Files\Java\jdk1.7.0_21\bin\tnameserv.exe -- Java IDL and RMI-IIOP 工具 - Provides access to the naming service.
C:\Program Files\Java\jdk1.7.0_21\bin\idlj.exe -- Java IDL and RMI-IIOP 工具 - 生產映射到OMG IDL接口可以使Java應用程序使用CORBA的.java文件
C:\Program Files\Java\jdk1.7.0_21\bin\orbd.exe -- Java IDL and RMI-IIOP 工具 - 為客戶可以在CORBA環境下透明的定位和調用服務器的穩定的對象提供支持
C:\Program Files\Java\jdk1.7.0_21\bin\servertool.exe -- Java IDL and RMI-IIOP 工具 - 為應用程序提供易於使用的接口用於注冊,注銷,啟動,關閉服務器
C:\Program Files\Java\jdk1.7.0_21\bin\pack200.exe -- Java 部署工具 - 使用java gzip壓縮工具將JAR文件轉換為壓縮的pack200文件,生產打包文件是高度壓縮的JAR包,可以直接部署,減少下載時間
C:\Program Files\Java\jdk1.7.0_21\bin\unpack200.exe -- Java 部署工具 - 解包pack200文件為JARs
C:\Program Files\Java\jdk1.7.0_21\bin\htmlconverter.exe -- Java 插件工具 - Java Plug-in HTML轉換器 htmlconverter -gui 可以啟動圖形界面
C:\Program Files\Java\jdk1.7.0_21\bin\javaws.exe -- Java web 啟動工具 - Java web 啟動命令行工具
C:\Program Files\Java\jdk1.7.0_21\bin\jvisualvm.exe -- Java 故障檢修,程序概要分析,監視和管理工具 - 一個圖形化的Java虛擬機,不說了 大家研究一下就發現太酷了.這是想了解JVM的人的神器http://java.sun.com/javase/6/docs/technotes/guides/visualvm/index.html
C:\Program Files\Java\jdk1.7.0_21\bin\jconsole.exe -- Java 故障檢修,程序概要分析,監視和管理工具 -java監視台和管理控制台,圖形界面的功能太強大了,運行一下就知道 ,不想多說,看了就知道
C:\Program Files\Java\jdk1.7.0_21\bin\schemagen.exe -- Java web 服務工具 - Java構架的XML Schema生成器
C:\Program Files\Java\jdk1.7.0_21\bin\wsgen.exe -- Java web 服務工具 - 生成 JAX-WS
C:\Program Files\Java\jdk1.7.0_21\bin\wsimport.exe -- Java web 服務工具 - 生成 JAX-WS
C:\Program Files\Java\jdk1.7.0_21\bin\xjc.exe -- Java web 服務工具 - 綁定編譯器
C:\Program Files\Java\jdk1.7.0_21\bin\jps.exe -- 監視工具 - JVM Process Status 進程狀態工具。列出目標系統的HotSpot JJVM , 監視Java虛擬機的性能,不支持Windows 98 和Windows ME 平台
C:\Program Files\Java\jdk1.7.0_21\bin\jstat.exe -- 監視工具 - 按照命令行的具體要求記錄和收集一個JVM的性能數據
C:\Program Files\Java\jdk1.7.0_21\bin\jstatd.exe -- 監視工具 - JVM jstat 的守護進程
C:\Program Files\Java\jdk1.7.0_21\bin\jinfo.exe -- 故障檢測和修理工具 - 配置或打印某個Java進程VM flag
C:\Program Files\Java\jdk1.7.0_21\bin\jhat.exe -- 故障檢測和修理工具 - 堆儲存查看器
C:\Program Files\Java\jdk1.7.0_21\bin\jmap.exe -- 故障檢測和修理工具 - Java內存圖
C:\Program Files\Java\jdk1.7.0_21\bin\jsadebugd.exe -- 故障檢測和修理工具 - Java 的 Serviceability Agent Debug的守護進程
C:\Program Files\Java\jdk1.7.0_21\bin\jstack.exe -- 故障檢測和修理工具 - Java堆棧跟蹤
C:\Program Files\Java\jdk1.7.0_21\bin\jrunscript.exe -- Java腳本工具 - 運行腳本