J2SE的JDK工具包j2sdk1_3_0可直接到SUN公司的网站上下载。
为了安装,只要双击下载后的压缩文件j2sdk1_3_0.exe,就会自动解压并安装JDK,一般可安装到C:\JDK目录下。安装后还需要设置windows的环境变量,上述编译器等程序都在BIN目录中,所以需要设置DOS路径和类库搜索路径,在autoexec.bat文件中修改如下:
PATH = %PATH%; c:\jdk\bin
set CLASSPATH = .; c:\jdk\lib\tools.jar;c:\jdk\lib\dt.jar
类路径中第一个"."不要省,因为当一个程序含有多个类时,运行要在当前目录中寻找相关的类文件。jdk中包含的实用程序很多,下面我们介绍最常用的几个javac, java, javap, jar, javadoc。
编译程序javac.exe
编译程序javac.exe的作用是java源文件编译生成类文件(*.class)。最简单的用法是
javac <XXX.java> <CR>
执行后将在当前目录中生成XXX.class文件。扩展名java不可省。javac.exe的一般使用格式
用法:javac <选项> <源文件>
可能的选项及其意义如下:
-g 生成所有调试信息
-g:none 生成无调试信息
-g:{lines,vars,source} 生成只有部分调试信息
-O 优化;可能妨碍调试或者增大类文件
-nowarn 生成无警告
-verbose 输出关于编译器正在做的信息
-deprecation 输出使用了不鼓励使用的API的源程序位置
-classpath <路径> 指定用户类文件的位置
-sourcepath <路径> 指定输入源文件的位置
-bootclasspath <路径> 覆盖自举类文件的位置
-extdirs <目录(多个)> 覆盖安装的扩展类的位置
-d <目录> 指定输出类文件的位置
-encoding <编码> 指定源文件中所用的字符集编码
-target <版本> 生成指定虚拟机版本的类文件
例如:
javac -source d:\java\ch15\ -d c:\java\ch15 -classpath c:\mytools test.java
把:\java\ch15\test.java文件编译,类文件输出到c:\java\ch15目录中,可能使用到的个人类库在c:\mytools中。
运行程序java.exe
运行程序java.exe解释性地把字节码文件*.class翻译成所在机器的可执行代码并执行之。它的最简单的用法是:java <类文件名> <CR>
运行当前目录中的类文件XXX.class,扩展名不能加。如果不是当前目录中而是带路径的文件名,那么在程序包含多个类时会发生某某类找不到的异常。运行程序java.exe的一般使用格式为:
java [选项] <类文件名> [命令行参数] 〈CR>
包含多个类的程序也可以把多个文件压缩到一个jar文件中,那么运行命令如下:
java -jar [选项] <JAR文件名> [命令行参数] 〈CR>
java.exe可用的选项及其意义如下:
-cp -classpath <directories and zip/jar files separated by ;> set search path for application classes and resources
-D<name>=<value> set a system property
-verbose[:class|gc|jni] enable verbose output
-version print product version and exit
-showversion print product version and continue
-? -help print this help message
-X print help on non-standard options
例如命令
c:\myjava>java -classpath d:\mytools; myclass
表示运行当前目录中的myclass.class文件,除了默认的类路径以外,可以到d:\mytools目录中查找,然后到c:\tools\dt.jar文件中查找使用到的类。
查看程序javap.exe
程序 javap.exe的功能是查看知道类文件中的所有声明——类名、构建器和方法名、字段(变量)。最简单的用法是javap <类文件名> <CR>
执行后显示类文件中的包和类的所有声明,但不包含方法体。不带选项的命令不显示用private修饰的声明。javap命令的一般格式为:javap [选项] <类文件名>〈CR>
文件名中不能加扩展名。可能的选项及其意义如下。
-b Backward compatibility with javap in JDK 1.1
-c Disassemble the code
-classpath <pathlist> Specify where to find user class files
-extdirs <dirs> Override location of installed extensions
-help Print this usage message
-J<flag> Pass <flag> directly to the runtime system
-l Print line number and local variable tables
-public Show only public classes and members
-protected Show protected/public classes and members
-package Show package/protected/public classes and members (default)
-private Show all classes and members
-s Print internal type signatures(签名)
-bootclasspath <pathlist> Override location of class files loaded by the bootstrap class loader
-verbose Print stack size, number of locals and args for met hods If verifying, print reasons for failure
选项-package是默认的,它显示package/protected/public的类,不显示private的,用-private选项可显示所有的。
例1 对第15章的例6使用下列命令
C:\javacode\zcb\ch15>javap FileDownload
输出结果如下:
Compiled from FileDownload.java
public class FileDownload extends javax.swing.JFrame implements java.awt.event.A
ctionListener {
java.lang.String url;
javax.swing.JTextField tUrl;
MyPanel mp;
javax.swing.JButton bt;
public FileDownload();
public void actionPerformed(java.awt.event.ActionEvent);
static void getDown(java.lang.String);
public static void main(java.lang.String[]);
}javap FileDownload
上述命令这显示public类,不显示处在同一文件中的非public类。如果要求一起查看,可在命令行中加入多个文件名。如:javap FileDownload MyPanel <CR>
压缩程序Jar.exe
压缩程序jar.exe的功能是把多个文件以zip格式压缩到一个扩展名为jar的文件中,这样可以保持程序的完整性并便于使用。它也可以用来解压缩jar文件中的文件,但是好象不如用压缩工具Winzip WinRAR来得方便。
jar文件主要有以下三个用途:
1. 一个应用程序包含许多类文件,压缩到一个jar文件中,运行时用java -jar XXX.jar命令。避免文件一多互相混杂不容易管理。
2. 一个Applet程序包含许多类文件,压缩到一个jar文件中,运行时一次装载,避免多次装载提高运行效率。
3. 把类库压缩到jar文件中,使用起来更方便。例如java 2的类库都在tools.jar文件中,该文件在jdk/lib目录中。swing类在dt.jar文件中。但是需要把tools.jar和dt.jar加入到类库路径CLASSPATH中。
使用命令C:\javacode\zcb>jar 可在DOS屏幕上输出jar.exe的用法和选项如下:
用法:jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
命令中的文件名可以是用空格分隔的多个文件。选项:
-c 创建新的归档
-t 列出归档内容的列表
-x 展开归档中的命名的(或所有的)文件
-u 更新已存在的归档
-v 生成详细输出到标准输出上
-f 指定归档文件名
-m 包含来自指定的清单(manifest)文件的清单(manifest)信息
-0 只存储方式;未用ZIP压缩格式
-M 不产生所有项的清单(manifest)文件
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest)文件名和归档文件名都需要被指定,按m 和 f标志指定的相同顺序。
示例1:将两个class文件归档到一个名为 classes.jar 的归档文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 mymanifest 将 foo/ 目录下的所有文件归档到一个名为 classes.jar 的归档文件中:
jar cvfm classes.jar mymanifest -C foo/
示例3:从classes.jar文件中还原文件Foo.class
jar xf classes.jar Foo.class
示例4:还原classes.jar文件中的所有文件
jar xf classes.jar
注意,用jar xf classes.jar *.*(or *.class. xxx.* etc.) 都是错误的。但压缩时可以使用通配符,下类命令是正确的:
jar cf classes.jar -C foo/ *.*
它把目录foo中的所有文件都压缩到classes.jar中。
文档生成器javadoc
参考文档生成器javadoc.exe的用途是从java源程序中提取信息生成html格式的软件参考文档。它最简单的用法是:
javadoc FileDownload.java
运行后生成文件FileDownload.html和其他相关文件。
点击这里观看这个文件的内容。
java.doc的用法和选项列表如下。
用法:javadoc [options] [packagenames] [sourcefiles] [@files]
-overview <file> 读取 HTML 格式的概述文档
-public 仅显示 public 类和成员
-protected 显示 protected/public 类和成员(缺省)
-package 显示 package/protected/public 类和成员
-private 显示所有类和成员
-help 显示命令行选项
-doclet <class> 通过候选 doclet 生成输出
-docletpath <path> 指定 doclet 类文件的查找位置
-1.1 利用 JDK 1.1 模仿 doclet 生成输出
-sourcepath <pathlist> 指定源文件的查找位置
-classpath <pathlist> 指定用户类文件的查找位置
-bootclass path <pathlist> 覆盖自举类加载器所加载的 类文件的位置
-extdirs <dirlist> 覆盖已安装的扩展的位置
-verbose 有关 Javadoc 所做工作的输出信息
-locale <name> 所用的 Locale,例如 en_US 或 en_US_WIN
-encoding <name> 源文件编码名称
-J<flag> 将 <flag> 直接传给运行时系统
由标准 doclet 提供:
-d <directory> 输出文件的目标目录
-use 创建类和包的用法页
-version 包含 @version 段
-author 包含 @author 段
-splitindex 将索引分为每个字母对应一个文件
-windowtitle <text> 文档的浏览器窗口标题
-doctitle <html-code> 包含包索引页(首页)的标题
-header <html-code> 包含每一页的页眉文本
-footer <html-code> 包含每一页的页脚文本
-bottom <html-code> 包含每一页的页底文本
-link <url> 创建到 javadoc 输出的链接(位于 <url>)
-linkoffline <url> <url2> 利用位于 <url2> 的包列表链接到位于 <url> 的文档
-group <name> <p1>:<p2>.. 将概览页中指定的包分组
-nodeprecated 不包含 @deprecated 信息
-nodeprecatedlist 不生成不鼓励使用的列表
-notree 不生成类层次
-noindex 不生成索引
-nohelp 不生成帮助链接
-nonavbar 不生成导航栏
-helpfile <file> 包含帮助链接功能链接到目标的文件
-stylesheetfile <path> 改变所生成文档的样式的文件
-docencoding <name> 输出编码名称
示例 下列命令生成的就是从上面的超链中看到的文件。
javadoc -private -d F:\SHPS3688\webSchool\JavaTouturial -author -splitindex -windowtitle FileDownload.java程序的参考文档 FileDownload.java
请读者自行解释这个命令的完整含义。
javadoc能够提取有/** ... */括起来的注释文本作为HTML文档的正文内容。因此java有/**和/*两种注释标记。值得一提的是,在/** ... */中的注释内容可以包含HTML标记文本,javadoc提取HTML标记送到生成的文档中。用这种方法可以控制生成文档的正文的显示格式。例如下面这一段:
/**
* 您可以插入一个<b>项目列表</b>:
* <ol>
* <li> 项目一
* <li> 项目二
* <li> 项目三
* </ol>
*/
可以生成一个项目列表。注意在文档注释中,位于一行最开头的星号会被javadoc丢弃。同时丢弃的还有前导空格。javadoc会对所有内容进行格式化,使其与标准的文档外观相符。不要将<h1>或<hr>这样的标题当作嵌入HTML使用,因为javadoc会插入自己的标题,我们给出的标题会与之冲突。所有类型的注释文档——类、变量和方法——都支持嵌入HTML。
javadoc还会提取一些以@开头的文档标记(Doc tags),置于注释行的起始处(但前导的*会被忽略)。比如您需要提取@authod标记,在命令行选项中需要加入-authod选项。下面给出各种@标记和它的含义。
@see 引用其他类
类、方法和变量三种类型的注释文档都可包含@see标记,它允许我们引用其他类里的文档。对于这个标记,javadoc会生成相应的HTML,将其直接链接到其他文档。格式如下:
@see 类名
@see 完整类名
@see 完整类名#方法名
每一格式都会在生成的文档里自动加入一个超链接的See Also条目。注意javadoc不会检查我们指定的超链接是否有效。
类文档标记
随同嵌入HTML和@see引用,类文档还可以包括用于版本信息以及作者姓名的标记。类文档亦可用于接口目的。
1. @version
格式如下:
@version 版本信息
其中,版本信息代表任何适合作为版本说明的资料。若在javadoc命令行使用了-version标记,就会从生成的HTML文档里提取出版本信息。
2. @author
格式如下:
@author 作者信息
其中,作者信息包括您的姓名、电子函件地址或者其他任何适宜的资料。若在javadoc命令行使用了-author标记,就会专门从生成的HTML文档里提取出作者信息。
可为一系列作者使用多个这样的标记,但它们必须连续放置。全部作者信息会一起存入最终HTML代码的单独一个段落里。
变量文档标记
变量文档只能包括嵌入的HTML以及@see引用。
方法文档标记 除嵌入HTML和@see引用之外,方法还允许使用针对参数、返回值以及违例的文档标记。
1. @param
格式如下:
@param 参数名 说明
其中,参数名是指参数列表内的标识符,而说明代表一些可延续到后续行内的说明文字。一旦遇到一个新文档标记,就认为前一个说明结束。可使用任意数量的说明,每个参数一个。
2. @return
格式如下:
@return 说明
其中,说明是指返回值的含义。它可延续到后面的行内。
3. @exception
有关违例(Exception)的详细情况,我们会在第9章讲述。简言之,它们是一些特殊的对象,若某个方法失败,就可将它们扔出对象。调用一个方法时,尽管只有一个违例对象出现,但一些特殊的方法也许能产生任意数量的、不同类型的违例。所有这些违例都需要说明。所以,违例标记的格式如下:
@exception 完整类名 说明
其中,完整类名明确指定了一个违例类的名字,它是在其他某个地方定义好的。而说明(同样可以延续到下面的行)告诉我们为什么这种特殊类型的违例会在方法调用中出现。
4. @deprecated (不提倡使用的方法警告)
这是Java 1.1的新特性。该标记用于指出一些旧功能已由改进过的新功能取代。该标记的作用是建议用户不必再使用一种特定的功能,因为未来改版时可能摒弃这一功能。若将一个方法标记为@deprecated,则使用该方法时会收到编译器的警告
注意,对于类文档标记@version和@authod需要使用命令行选项才提取,而其他@标记是默认提取的,而用-nodeprecated选项禁止提取。
Applet观看程序appletviewer.exe
appletviewer.exe用来不凯浏览器就观看小程序片。它的简单用法是
appletviewer XXX.html
其中XXX.html是嵌入了Applet的HTML文档,扩展名不能省略。运行后会打开一个大小等于Applet设定的宽和高的窗口,用来显示这个Applet。appletviewer的用法的一般格式和选项如下:
appletviewer [-debug] [-J<javaflag>] [-encoding <编码类型>] url|file ...
其中文件必须是html文件,不能是class文件。