爱心技术专栏专题

J2SE的JDK中常用工具简介

摘录:jsp 来源:jsp 加入时间:2007年02月12日
摘要:
J2SE的JDK中常用工具简介

 J2SE的JDK工具包j2sdk1_3_0可直接到SUN公司的网站上下载。

 …

J2SE的JDK中常用工具简介

站点:爱心种子小博士 关键字:J2SE的JDK中常用工具简介
J2SE的JDK中常用工具简介
 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文件。



转载:转载请保留本信息,本文来自http://www.51dibs.com/lp07/la/a6/l_a_a09088d7d8795a70.html

客户服务中心信箱:[email protected] [email protected] 网站地图

声明

爱心赞助: