- 零基礎學Java第2版
- 陳潔
- 1252字
- 2018-12-31 19:34:28
2.3 JDK內置工具
Java程序需要運行環境的支持,同時編譯、解釋Java程序、執行Java應用程序和Java小程序也需要必要的工具,本節重點講解JDK中包含的5個常用工具,即Javac.exe、Java.exe、appletviewer.exe、Javadoc.exe和Javap.exe。在Sun的JDK中還集成了Java虛擬機(JVM),JVM提供了Java程序的運行環境,它負責解釋.class文件(Java源程序經過編譯后的文件),并提交給機器執行。
注意
這里對JVM不再做過多的說明,讀者只要知道它的作用就足夠了。
2.3.1 JDK常用工具
JDK是一個開發工具集合,作為實用程序,工具庫有5種主要程序。
(1)Javac:Java編譯器,將Java源代碼轉換為字節碼(生成和源文件名同名的.class文件)。
(2)Java:Java解釋器,執行Java源程序的字節碼。
(3)appletviewer:小應用程序瀏覽器,執行嵌入HTML文件中的Java小程序的Java瀏覽器。
(4)Javadoc:依據Java源程序和說明語句生成各種HTML文檔。
(5)Javap:Java反匯編器,顯示編譯類文件中可訪問的功能和數據,顯示字節碼的含義。
2.3.2 JDK常用工具實例
2.3.1節已經詳細介紹了各種實用工具的含義,這里就依次介紹如何使用這些工具給出一個具體實例。
Javac和Java工具在第2.6節通過一個Java應用程序詳細說明了其用法。這里介紹2.3.1節所列的其他工具的使用,借用2.7節中的Java應用程序JavaApplet.Java。圖2.2說明如何使用appletviewer。

圖2.2 使用appletviewer工具
說明
這里僅僅說明如何使用該工具,即該工具的語法規則,至于Java Applet如何使用,可以參考2.7節的例子。

圖2.3 使用Javadoc
圖2.3說明如何使用Javadoc。
說明
這里借用了2.7節中的JavaApplet.Java源程序,在圖2.3中可以清楚地看到Javadoc工具的執行過程,首先是加載源文件JavaApplet.Java,創建相關Javadoc信息,然后產生各種html文件,這些文件保存在執行Javadoc命令的當前目錄下。至于文件內容,讀者只要自己實踐一次,打開觀察一下,就很清楚了,這里不再作過多介紹。
圖2.4為在D盤根目錄下通過各種Javadoc生成的html文件。圖2.5說明如何使用Javap。

圖2.4 Javadoc生成的各種html文件

圖2.5 使用Javap
說明
這里使用Javap反編譯MyFirstJavaProgram.class(源程序可參見2.6節的代碼)文件,反編譯的結果是該類提供的可訪問的方法和屬性,這里可訪問是指具有public訪問權限的方法或靜態屬性,如在MyFirstJavaProgram.Java源文件中,有一個public訪問權限的String testString和具有public訪問權限的main()方法,同時Java默認的構造函數也具有public訪問權限,所以這些都可以通過反編譯工具Javap體現出來。
本節詳細介紹了JDK的幾種常用工具,讀者一定用心體會,自己操作一遍,就可以很快掌握這些工具的用法。尤其是Javac.exe和Java.exe,它們是最常用的兩種工具,在2.6節有具體的操作實例,讀者可以參考。隨著學習的深入,還會附帶介紹其他工具(如jar打包工具等),對于初學者首先掌握本節介紹的基本工具是最重要的,這樣不會耽誤下面的學習內容,同時為深入學習JDK的其他工具打下良好的基礎。
2.3.3 應用程序發布工具(jar)
jar文件被打包成ZIP文件格式,所以可以使用jar文件實現壓縮和解壓縮數據。jar工具可以實現應用程序的發布,把應用程序所需要的資源(如類、視頻、音頻、圖片等)打包成.jar文件,該文件具有跨平臺特性,可以在任何運行虛擬機的操作系統平臺上執行。
jar工具是JDK的一部分,使用該工具實現jar文件的基本功能。jar命令將啟動打包工具軟件,根據自己的需要調用不同的參數實現打包資源文件。表2.1為jar工具命令格式和操作命令的功能。
表2.1 jar文件操作和操作功能的列表

- Spring 5.0 By Example
- ReSharper Essentials
- C# 2012程序設計實踐教程 (清華電腦學堂)
- Servlet/JSP深入詳解
- Swift 3 New Features
- HTML5 and CSS3 Transition,Transformation,and Animation
- RSpec Essentials
- Java網絡編程實戰
- 時空數據建模及其應用
- Mastering Gephi Network Visualization
- Developing Java Applications with Spring and Spring Boot
- Backbone.js Patterns and Best Practices
- Opa Application Development
- Python Natural Language Processing
- JSP編程教程