21.4 Java标准的其他工具(如java命令、jar命令、Javadoc等)- Java基础篇

首先

我的自我介紹

大家好,我是Udemy講師斉藤賢哉。我在企業系統開發方面已經有超過25年的經驗。尤其作為一名架構師,我擁有豐富的技術設計和Java框架開發等方面的經驗,專注於關鍵任務的系統開發。

我在各種研討會上發表演講,並有在技術雜誌上發表技術文章的經驗,還著有以下書籍:

    • 「マスタリング Java EE 5」(2007年)

 

    「アプリケーションアーキテクチャ設計パターン」(2017年)

以下是一本专注于企业系统开发以Java EE(Jakarta EE)为核心的书籍。其中,《应用程序架构设计模式》是一本涵盖相对普遍的主题(不仅限于Java)的书籍,其内容仍然新颖,如果您对该主题感兴趣,不妨一试(适合中级开发者)。

介绍一下Udemy的讲座。

这篇文章的内容涵盖了我在Udemy上执教的《Java基础篇》课程的部分内容。您可以通过此链接购买《Java基础篇》课程(无特价促销,价格始终不变)。另外,我在Qiita定期发布可享受约30%折扣的优惠券,如果您感兴趣的话,请一定查看我的其他文章。

我强烈推荐以下的课程给大家。

    • Javaの言語仕様や文法を正しく理解すると同時に、現場での実践的なスキル習得を目指している方

 

    • 新卒でIT企業に入社、またはIT部門に配属になった、新米システムエンジニアの方

 

    • 長年IT部門で活躍されてきた中堅層の方で、学び直し(リスキル)に挑戦しようとしている方

 

    • 今後、フリーランスエンジニアとしてのキャリアを検討している方

 

    • 「Chat GPT」のエンジニアリングへの活用に興味のある方

 

    • 「Oracle認定Javaプログラマ」の資格取得を目指している方

 

    IT企業やIT部門の教育研修部門において、新人研修やリスキルのためのオンライン教材をお探しの方

包括了这篇文章的整个系列

这篇文章涵盖了Java SE的部分功能和规范,而且是一个系列文章,整个系列涵盖了Java SE的所有内容。此外,它还涵盖了「Oracle认证Java程序员」(Silver、Gold)的范围。有关系列文章的整体内容和「Oracle认证Java程序员」范围的对应关系,请参考以下内容。

 

21.4 其他Java标准工具

章节概述

在这一章中,我们将学习Java标准工具,如java指令、jar指令和javadoc指令。

21.4.1 Java命令和参数

命令行参数

命令行参数是指在使用Java命令执行类时,可以从外部传递的参数。
主方法的声明为public static void main(String[] args) {},但也可以使用可变参数声明为public static void main(String… args) {}。无论哪种情况,主方法的参数都是一个String类型的数组。
实际上,这个数组中存储了命令行参数。
命令行参数可以通过Java命令进行指定,如下所示。

java  実行対象クラスのFQCN  引数1  引数2  引数3 ....

引数与参数之间使用空格分隔。如果要在参数中包含空格,需要用双引号括起来。
通过这种方式执行Java命令时,参数1、2、3…将作为String类型的数组存储在变量args中,并传递给主方法。在主方法中,例如如果是参数1,可以通过args[0]获取值。

独立的系统属性 de

如上所述,Java运行时会将与系统环境有关的信息以系统属性的方式进行管理。但是,开发者也可以定义自己的属性,并在Java程序执行时将其设置为JVM参数。

JVM参数可以通过java命令的-D选项进行如下设置。

java  -Dプロパティ名=値  実行対象クラスのFQCN

如果要定义一个名为”program.mode”的属性,并在运行时设置其值,则可以使用以下方式输入java命令。

java  -D"program.mode"=normal  実行対象クラスのFQCN

通过System.getProperty(“program.mode”)执行的Java程序可以获取已设置的属性值(在此情况下为”normal”)。
在Java程序运行时,可以使用命令行参数或自定义系统属性等方法来从外部传递某些信息。对于这些方法的选择,可以考虑将命令行参数用于业务处理的参数,将与操作环境相关的设置信息用于系统属性。

21.4.2 JAR文件和类路径

JAR文件是什么?

在Java中,有一种特殊的归档文件被称为JAR文件。JAR表示”Java Archive”的缩写,JAR文件的扩展名是”.jar”。

通过JAR文件,可以将编译后的类文件、属性文件、图像文件等资源文件归档并统一管理。通过将资源归档到JAR文件中,可以方便地进行程序发布、测试环境和生产环境之间的传递,提高了可移植性。

另外,使用JAR文件执行包含的类时,无需解压缩。如果JAR文件中的类被其他类引用,还可以在文件本身中设置类路径。

值得注意的是,可以使用后面将提到的jar命令来生成JAR文件,但实际的应用开发通常使用像Gradle这样的构建工具来生成。

使用jar命令的方法

JAR文件通过JDK附带的jar命令进行创建。
jar命令的基本语法如下,首先指定选项,然后跟上JAR文件名,最后是目标目录或文件的描述。包括选项在内,与Linux中常见的tar命令相似。

jar  オプション  JARファイル名  ディレクトリ/ファイル ....

下面列出了jar命令的主要选项【表21-4-1】。

オプション説明-cJARファイルを新規作成する*-tJARファイルの内容を一覧表示する*-xJARファイルを解凍する*-uJARファイルを更新する*-v実行中にコマンドラインに処理内容を表示する-fJARファイル名を指定する

带有*标记的选项在一次jar命令执行中只能指定一个。

以下是jar命令执行的主要示例。

    • 例1:2つのクラスファイル、Foo.class、Bar.classをアーカイブし、JARファイルhoge.jarを新規作成する。

 

    • jar -cvf hoge.jar Foo.class Bar.class

 

    • 例2:classesディレクトリ配下のすべてのファイルをアーカイブし、JARファイルhoge.jarを新規作成する。

 

    • jar -cvf hoge.jar classes

 

    • 例3:JARファイルhoge.jarの内容を解凍し、内包するクラス群をカレントディレクトリに展開する。

 

    • jar -xvf hoge.jar

 

    • 例4:JARファイルhoge.jarの内容を一覧表示する。

 

    jar -tf hoge.jar

21.4.3 “API Reference” and Javadoc是API文档和Javadoc。

Javadoc 是什么?

Image.png

使用Java文档工具(Javadoc)可以在源代码中编写特殊注释,并仅通过将其加载到工具中,就能轻松生成HTML格式的文档。这样的文档在将创建的类作为API向外部提供时,将成为使用API的指南。它不仅可以用作API使用者指南,还可以用作维护相关应用程序所需的文档。

撰写Javadoc注释的方法

通过Javadoc生成文档时,我们需要在声明类、方法、构造函数和字段等成员的前面,使用特殊的注释形式(即Javadoc注释)进行描述。具体而言,我们将/**到*/这段多行注释视作Javadoc注释。

/**    
 * ここにJavadocのためのコメントを記述する(複数行可能)
 */
public class JavadocSample extends Foo implements Serializable {
    ........
}

与一般的多行注释不同的是,Javadoc注释以/**开头。
此外,Javadoc注释中还可以嵌入以@符号开头的标签,称为Javadoc标签,除了说明文本。
下面列出了比较常用的主要Javadoc标签。

【表 21-4-2】常用的主要Javadoc标签比较

Javadocタグ説明@authorこのクラスの作成者の名前(クラス用)@version現在のバージョン(クラス用)@since導入されたバージョン(クラスまたはメンバー用)@param引数の説明(メソッド、コンストラクタ用)@return戻り値の説明(メソッド用)@exception例外の説明(メソッド、コンストラクタ用)@deprecated非推奨(クラスまたはメンバー用)@see参照先(クラスまたはメンバー用)

在这些情况下,@deprecated标签所表示的“非推荐”具体指的是以下这些情况。

    • ある要素(クラスやメンバー)に何らかの機能的な不備があり、別の要素の使用を推奨するようなケース

 

    ある要素(クラスやメンバー)が不必要になったが、いきなり削除するのではなく、その要素にアクセスしている他クラスへの影響を考慮して、一定期間残存させるようなケース

Javadoc评论的具体示例

让我们通过具体例子来了解Javadoc评论的编写。下面是属于pro.kensait.java.basic.lsn_21_4_3.javadoc包的JavadocSample类的代码。虽然这个类本身没有任何意义,但它作为一个例子展示了如何使用Javadoc标签对类、字段、构造函数和方法进行注释。

/**    
 * <p>クラスJavadocSampleの説明(概要)をここに書く。
 * クラスJavadocSampleの説明(詳細)をこれ以降に書く。</p>
 * <p>説明文中からリンク{@link Foo}を張ることもできる。</p>
 * @author  Kenya Saitoh
 * @version 1.2
 * @since   1.1
 * @see     Serializable
 * @see     Foo#foo
 */
public class JavadocSample extends Foo implements Serializable {
    /**
     * <p>フィールドdata1の説明をここに書く。</p>
     */
    int data1;
    /**
     * <p>フィールドdata2の説明をここに書く。</p>
     */
    int data2;
    /**
     * <p>コンストラクタの説明(概要)をここに書く。
     * コンストラクタの説明(詳細)をこれ以降に書く。</p>
     */
    public JavadocSample() {
    }
    /**
     * <p>メソッドmethod1の説明(概要)をここに書く。
     * method1の説明(詳細)をこれ以降に書く。</p>
     *
     * @since      1.1
     * @param str1 引数str1の説明。
     * @param str2 引数str2の説明。
     * @return     戻り値の説明。
     * @exception  HogeException この例外がどんな状況で発生するか。
     */
    public String method1(String str1, String str2) throws HogeException {
        return str1 + str2;
    }
    /**
     * <p>メソッドmethod2の説明(概要)をここに書く。
     * method2の説明(詳細)をこれ以降に書く。</p>
     */
    private void method2() {
    }
    /**
     * <p>メソッドmethod3の説明(概要)をここに書く。
     * method3の説明(詳細)をこれ以降に書く。</p>
     * @deprecated 「VER1.xで廃止予定」など
     */
    public void method3() {
    }
}

请查阅代码中的评论以了解应在类和每个成员的Javadoc注释中包含哪些内容。
补充说明,首先有@see Serializable,这样写将在Serializable接口的“API参考文档”上添加链接。
另外,像method2这样的私有成员对外部是不可见的,因此在文档中也应该避免对外部进行公开。可以通过工具启动选项来控制是否将私有成员包含在文档中。根据需要,可以将成果物分开生成,例如内部维护文档和外部使用者文档。

使用Javadoc生成文档。

生成Javadoc文档有几种方法。首先,可以使用附带在JDK中的javadoc命令进行生成。此外,还可以使用Eclipse的功能生成,或者使用像Gradle这样的构建工具生成。在实际的应用开发中,使用构建工具的情况是常见的。在本课程中,我们将介绍如何使用Eclipse的功能生成文档,以JavadocSample类为例。首先,从菜单栏选择“文件” – “导出”。出现“导出向导”,选择“Javadoc”。

Image.png

接下来,我们需要指定目标项目和输出目录。目标项目是这个项目(21_others)的包”pro.kensait.java.basic.lsn_21_4_3″,输出目录为「C:\LetsLearn\Java\repos\learn_java_basic-main\21_others\doc」。同时,我们还要指定要包含在文档中的可见性范围。在这里,我们选择private。

Image.png

接下来,勾选所需的标签,并选择要在文档中设置链接的目标。在这里,我们将指定整个项目和Java SE的类库。

Image.png

接下来,要指定要生成的HTML的字符编码,最后点击”完成”按钮。

Image.png

我在这一章学到了什么。

在本章中,我们学到了以下内容。

    1. 关于java命令中的命令行参数。

 

    1. 关于设定自定义的系统属性的方法。

 

    1. 关于JAR文件的特点和jar命令的使用方法。

 

    关于通过”API参考”和Javadoc生成文档的方法。
广告
将在 10 秒后关闭
bannerAds