Java 基础培训教程老虎工作室 沈伯青 编著 人民邮电出版社第二章 运行环境安装与测试P5 Java 不进提供了一个运行环境,而且还提供了一个免费的 Java 软件开发工具集 JSDK (Java Software Development Kit) ,有了这个工具集就可以在 Java 标准平台(J2SE)上进行 Java 代码程序的开发。JSDK 最初被成为 Java Development Kit(JDK) ,最开始发行的版本 是 1.1,后来随着 Java 的发展,JSDK 的版本逐渐增加,有了 1.2 版本、1.3 版本等,目前已 经升级到 1.4 版本。 Java 中, 在 统一称 1.2 版本或更高的版本为 Java 2。 JSDK 包括生成 Java 中最基本的小应用程序和应用程序所需要的所有工具和标准 Java 类库。 Java 平台分为三种, 他包括 Java 标准平台 (J2SE, Java 2 Platform Standard Edition) Java 、 企业级平台 (J2EE, Java 2 Platform Enterprise Edition) Java 小型平台 和 (J2ME, Java 2 Platform Micro Edition) ,其中 J2EE 和 J2ME 平台上的应用实现都是要建立在 J2SE 平台基础之上的。 P9 现已将 JSDK 安装在“D:JSDK14”目录下,可以根据路径找到该目录并查看该目录中 的内容,如图 2-9 所示。 可以看到目录下有 5 个子目录分别是“bin、demo、include、jre、lib” ,以及 5 个文件。 对于初学者来说,需要注意的是“bin”目录和“lib”目录下的内容。 双击“bin”目录,发现有 23 个后缀名为“.exe”的实用程序。这些都是开发工具库所 自带的工具。对于初学者来说血药了解和掌握的是 8 个工具,见表 2-1。其中读者能够很快 遇到并需要掌握的工具是:Javac、Java、Appletviewer、Javadoc,其次是 Jar,然后是 Jdb、 Javap、Javah。对于剩下的 15 个工具,读者可以查询相关的帮助文件。 表 2-1 JSDK 的 8 种主要工具 名称 Javac 解释 Java 编译器, Java 源文件代码转换成 Java 字节代码, 将 编译后缀名为 “.java” 的根文件,生成一个新的后缀名为“.class”的类文件,其文件名和根文件的 文件名相同 Java 编译器,用来执行生成的后缀名为“.class”的类文件,即执行 Java 应用 程序自己代码 小应用程序的 Java 浏览器,主要是执行后缀名为“.html”或者是“.htm”的 文件,这些文件的内容嵌套着 Java 小应用程序类 Java 说明工具,根据 Java 源代码及其说明语句生成相关的 HTML 文档,编 程者可以很方便的通过 HTML 文档来了解 Java 源代码的功能、方法及其继 承关系 Java 调试器,可以逐行执行程序、设置断点和检查变量 Java 反汇编器,显示编译类文件中可访问功能和数据,同时显示字节代码的 含义 Java 档案文件生成器,用它可以生成的后缀名为“.jar”文件,JAR 文件可以 在一个压缩文件中发布多个 Java 类和资源, 这个资源可以包括哟 GIF 图片资 源、HTML 文档资源等 头文件生成器,产生可以调用的 Java 过程的 C 过程,也可以建立能被 Java 程序调用的 C 过程的文件头Java Appletviewer JavadocJdb Javap JarJavabP10 ①虽然已经安装了 JSDK,也同时安装好了 Java 运行环境,但是 Java 语言是跨平台的,
无论在什么平台或者操作系统下的文本编辑器里都可以编写“.java”代码,最终都要经过 Javac 编译器将源代码转换成与平台无关的“.class”字节代码,这是 Java 语言编程的一个重 要特性,也是其体现出跨平台优越性的保证。 ②本书中对 “.java” 代码的 Javac 编译器所执行的操作也是在 Windows 操作系统中的 【命 令提示符】窗口下进行的。 【命令提示符】窗口下只能执行缺省的 DOS 命令,如 cd、dir、 clear 等,如果要执行 Javac、Java、Javadoc 等命令,则需要进行额外的环境变量的设置。 表 2-2 本书常用的基本 DOS 命令 名称 Dir cd $ $>cd.. %:\>& 解释 DOS 查询命令,用来查询所在目录的具体文件信息等 用来进入某一个文件夹,其中“$”表示文件夹名称, “cd”和文件夹名称之间 有一个空格 退出当前文件夹目录进入上一级目录,其中“$”表示当前所在的文件夹名称 转换盘符操作,从“%”盘符转入到“&”盘符,其中“%” “&”均为盘符,它 们一般代表“C,D,E…”例如“C:\>D\”表示从 C 盘转到 D 盘P11 设置 Path 变量: 首先打开我的电脑右键属性高级选项卡中的环境变量, 找到系统变量分组框中的 “Path” 系统变量, 保持变量名的 “Path” 不变, 在变量值的文本编辑框内的末尾添加 “;D:\JSDK14\bin” 的字样,这样就可以在命令提示符窗口中执行 Javac、Java、Javadoc 等命令了。 提示:这里假设 JSDK 已经安装在 D 盘的 JSDK14 目录下,将“bin”目录添加到系统 变量“Path”中,确保了“bin”目录下的可执行文件可以在命令提示符窗口下运行。 只设置了 Path 环境变量对运行所有可执行文件还是不够的,因为在“.java”代码中, 还可能引用 JSDK 缺省的几个 Java 类包,否则用“Javac 编译器”无法将代码成功编译而生 成“.class”类文件,所以 Java 还要利用另一个环境变量——CLASSPATH。 P12 添加 CLASSPATH 环境变量: Java 运行环境从“CLASSPATH”环境变量中寻找到要执行的 Java 了。如果设置不当,则可 能遇到各种因为找不到指定的类而引起的各种错误。 在环境变量对话框中单机系统变量分组框的新建按钮,新建变量名为“CLASSPATH” 变量值为“.;D:\JSDK14\lib\dt.jar;D:\JSDK14\lib\tools.jar”的系统变量。这里需要注意的是变 量值中最前面的两个符号:一个点号“.”和一个分号“;”不能漏掉。 P13 环境测试: 在命令提示符中输入 java –version 可以判定 JSDK 版本、java 运行环境版本等。除此之外,还可以输入以下命令: java –h jar –h javadoc –h javac –h 来查询执行程序的相关参数使用方法。 P14 程序测试: 新建文本文档输入以下程序, public class testHello{ public static void main(String arg[]){ System.out.println("Hello,这是一个测试!");//中文状态下输入的分号 }//main()
/**testHello */ } 将文件命名为“testHello.java” 。保存位置是“E:\program\02\testHello.java” 。 文件保存成功之后,在命令提示符窗口中进入到“E:\program\02>”目录。输入的命令 那个依次为: E: cd program cd 02 这样就进入了“E:\program\02>”目录,在次目录下依次输入如下命令: dir javac testHello.java java testHello dir 这时会发现目录下多了一个“testHello.class”文件,这是 Javac 编译器将源代码编译成 字节代码生成类文件的结果。显示输出的“Hello,这是一个测试! ”是 Java 编译器直接执行 Java 应用程序字节代码的结果。 P16 Java 应用程序流程: 一个 Java 应用程序首先是经过文本编辑器的编辑工作得到 Java 源代码,源代码经过 Javac 编译器编译之后产生 Java 类文件,再经 Java 编译器编译执行得到输出程序。其中 Javadoc 执行程序可以对 Javac 源代码进行操作,生成关于 Javac 源代码的说明文档,这种文 档是以 HTML 格式输出的;另外 Javap 执行程序可以对 Java 类文件进行操作,得到的是对 Java 类文件反编译的结果,同时也看到 Java 源代码的方法分布情况。 P17 建档应用程序 Javadoc: Javadoc 是建档应用程序。它将能源代码自动建档,这样做的好处是在源代码进行一定 格式的说明之后, 可以将这些说明自动传输到 HTML 文件中, 是开发者直接从生成的 Javadoc 文档中查找到相关类一集相关类的方法、 属性变量。 代码程序中的说明字段是需要放在 “/**” 和“*/”之间的,这样 Javadoc 编译器才可以识别这些说明字段。 /**这是一个有说明的 Java 应用程序*/ public class testNoteHello{ /** *这是 testNoteHello 类的主函数,他主要是输出一句话。 */ public static void main(String arg[]){ System.out.println("Hello,这是一个有说明的测试!"); }//main() }/**testNoteHello*/ 将以上文字生成文档时,在命令提示符窗口“E:\program\02>”目录下需要输入: javadoc testNoteHello.java 这里不必先将“testNoteHello.java”文件通过 Javac 编译器编译成“testNoteHello.class” 文件。 最后输出了 10 个新的 HTML 文件和 1 个“package-list”文件以及 1 个样式单(CSS) 文件,这个 CSS 文件的作用是包含 HTML 页面的格式信息。 是修饰或者约束 HTML 文件显 示格式的。打开“testNoteHello.html”文件,则可以看到代码程序中的文档说明一集次代码 类的摘要信息。
P18 反汇编器 Javap: Javap 工具可以查询任何类,检查类的方法。它只在类文件也就是“.class”文件生成之 后进行操作,也就是说它操作的对象必须是类文件,仅接受类名,实际操作是在命令提示符 窗口“E;\program\02>”目录下输入: javap testNoteHello 得到的清单信息为: Compiled from testNoteHello.java public class testNoteHello extends java.lang.Object { public testNoteHello(); public static void main(java.lang.String[]); } 这里显示了两个方法,testNoteHello()和 main() 。testNoteHello()成为缺省的构造 函数,这是一个特殊的方法,如果在源代码中没有特殊指定该类的构造方法,则这个没有入 口参数的缺省的构造方法将会自动的在 Javap 中生成,而 main()方法是源代码中的。这样 通过 Javap 执行程序操作也可以看到源代码的方法构造情况。 Javap 也选用“–h”方法来查询其参数使用方法。当选择参数为“–c”时: javap –c testNoteHello 结果显示基础的字节代码的序列和方法清单。 Compiled from testNoteHello.java