機械翻訳について

jmodコマンド

名前

jmod - JMODファイルの作成と、既存のJMODファイルの内容のリスト

シノプシス

jmod (create|extract|list|describe|hash) [options] jmod-file

次の情報が含まれます。

主要な操作モード

create
新しいJMODアーカイブ・ファイルを作成します。
extract
JMODアーカイブ・ファイルからすべてのファイルを抽出します。
list
すべてのエントリの名前を表示します。
describe
モジュールの詳細を出力します。
hash
リーフ・モジュールを特定し、直接または間接的にそれらを必要とする依存性のハッシュを記録します。

オプション

options
「jmodのオプション」を参照してください。

必須

jmod-file
作成するまたは情報の取得元となるJMODファイルの名前を指定します。

説明

ノート:モジュール・パスへのモジュールのデプロイやMavenリポジトリへのモジュールの公開など、ほとんどの開発タスクでは、引き続きモジュール化JARファイル内のモジュールをパッケージ化します。 jmodツールは、ネイティブ・ライブラリまたはその他の構成ファイルを持つモジュール、またはjlinkツールを使用してランタイム・イメージにリンクするモジュールを対象としています。

JMODファイル形式では、.classファイル、メタデータおよびリソース以外のファイルを集計できます。 この形式は転送可能ですが実行可能ではありません。つまり、実行時ではなくコンパイル時またはリンク時に使用できます。

多くのjmodオプションには、コンテンツが結果のJMODファイルにコピーされるパスの指定が含まれます。 これらのオプションは、指定されたパスのすべての内容(サブディレクトリとその内容を含む)をコピーしますが、--excludeオプションで指定されたパターンに一致する名前を持つファイルは除外します。

--hash-modulesオプションまたはjmod hashコマンドを使用すると、各モジュールの記述子で、依存が許可されているモジュールのコンテンツのハッシュを記録できるため、これらのモジュールを"tying"にまとめることができます。 これにより、パッケージを1つ以上の特定の名前が付けられたモジュールにエクスポートしたり、修飾されたエクスポートによってそれ以外にはエクスポートしないようにできます。 ランタイムは、モジュールの記録されたハッシュが実行時に解決されたハッシュと一致するかどうかを検証します。そうでない場合、ランタイムはエラーを返します。

jmodのオプション

--class-path path
アプリケーションJARファイルまたは結果のJMODファイルにコピーするクラスが格納されているディレクトリの場所を指定します。
--cmds path
結果のJMODファイルにコピーするネイティブ・コマンドの場所を指定します。
--compress compress
JMODファイルの作成に使用する圧縮を指定します。 指定できる値はzip-[0-9]で、zip-0は圧縮せず、zip-9は最適な圧縮を提供します。 デフォルトはzip-6です。
--config path
結果のJMODファイルにコピーするユーザーが編集可能な構成ファイルの場所を指定します。
--dateTIMESTAMP
エントリのタイムスタンプに使用する、オプションのタイムゾーン形式のISO-8601拡張オフセット日時。例、"2022-02-12T12:30:00-05:00"。
--dir path
jmodが指定したJMODアーカイブから抽出したファイルを配置するロケーションを指定します。
--dry-run
ハッシュ・モードを実行します。 リーフ・モジュールと必要なモジュールを識別し、ハッシュ値をレコーディングしません。
--exclude pattern-list

指定されたコンマ区切りパターン・リストに一致するファイルを除外します。各要素は次のいずれかの形式を使用します:

  • glob-pattern

  • glob:glob-pattern

  • regex:regex-pattern

glob-patternの構文については、FileSystem.getPathMatcherメソッドを参照してください。 正規表現を表すregex-patternの構文については、Patternクラスを参照してください。

--hash-modules regex-pattern
指定されたregex-patternに一致するモジュールのモジュール・グラフに基づいて、リーフ・モジュールを特定し、依存性のハッシュを直接的および間接的に必要とするハッシュを記録します。 ハッシュは、作成されるJMODアーカイブ・ファイル、またはjmod hashコマンドで指定されたモジュール・パスのJMODアーカイブまたはモジュラJARに記録されます。
--header-files path
結果のJMODファイルにコピーするヘッダー・ファイルの場所を指定します。
--helpまたは-h
使用方法が表示されます。
--help-extra
追加オプションのヘルプを出力します。
--legal-notices path
結果のJMODファイルにコピーする法律上の注意点の場所を指定します。
--libs path
結果のJMODファイルにコピーするネイティブ・ライブラリのロケーションを指定します。
--main-class class-name
module-info.classファイルに記録するメイン・クラスを指定します。
--man-pages path
結果のJMODファイルにコピーするmanページの場所を指定します。
--module-version module-version
module-info.classファイルに記録するモジュール・バージョンを指定します。
--module-path pathまたは-p path
モジュール・パスを指定します。 --hash-modulesも指定する場合は、このオプションが必要です。
--target-platform platform
ターゲット・プラットフォームを指定します。
--version
jmodツールのバージョン情報を出力します。
@filename

指定したファイルからオプションを読み込みます。

オプション・ファイルとは、オプションと、通常コマンド・プロンプトに入力する値が含まれるテキスト・ファイルです。 オプションは、1行または複数行に表示されます。 パス名には環境変数を指定しないでください。 行の先頭にハッシュ記号(#)を付けることによって、行をコメント・アウトできます。

次に、jmodコマンドのオプション・ファイルの例を示します:

#Wed Dec 07 00:40:19 EST 2016
create --class-path mods/com.greetings --module-path mlib
  --cmds commands --config configfiles --header-files src/h
  --libs lib --main-class com.greetings.Main
  --man-pages man --module-version 1.0
  --os-arch "x86_x64" --os-name "Mac OS X"
  --os-version "10.10.5" greetingsmod

jmodの追加オプション

jmodのオプションで説明されているオプションに加えて、次の追加オプションをコマンドとともに使用できます。

--do-not-resolve-by-default
モジュールのデフォルトのルート・セットから除外します。
--warn-if-resolved
モジュールが解決される場合に警告を発行するツールのヒント。 非推奨、削除予定の非推奨または実験的のいずれかです。

jmodの作成例

次に、JMODファイルを作成する例を示します:

jmod create --class-path mods/com.greetings --cmds commands
  --config configfiles --header-files src/h --libs lib
  --main-class com.greetings.Main --man-pages man --module-version 1.0
  --os-arch "x86_x64" --os-name "Mac OS X"
  --os-version "10.10.5" greetingsmod

エントリの日付を2022 March 15 00:00:00として指定するJMODファイルを作成します :

jmod create --class-path build/foo/classes --date 2022-03-15T00:00:00Z
   jmods/foo1.jmod

jmodハッシュの例

次の例では、リーフ・モジュール(この例では、maです)を必要なモジュール(mb)とリンクしようとしたときに、必要なモジュールに記録されたハッシュ値がリーフ・モジュールのハッシュ値と一致しない場合にどうなるかを示します。

  1. 次の.javaファイルを作成してコンパイルします:

    • jmodhashex/src/ma/module-info.java

      module ma {
        requires mb;
      }
    • jmodhashex/src/mb/module-info.java

      module mb {
      }
    • jmodhashex2/src/ma/module-info.java

      module ma {
        requires mb;
      }
    • jmodhashex2/src/mb/module-info.java

      module mb {
      }
  2. モジュールごとにJMODアーカイブを作成します。 ディレクトリjmodhashex/jmodsおよびjmodhashex2/jmodsを作成した後、次のコマンドをjmodhashexディレクトリから、次にjmodhashex2ディレクトリから実行します。

    • jmod create --class-path mods/ma jmods/ma.jmod

    • jmod create --class-path mods/mb jmods/mb.jmod

  3. オプションで、jmod hashコマンドをプレビューします。 jmodhashexディレクトリから次のコマンドを実行します:

    jmod hash --dry-run -module-path jmods --hash-modules .*

    このコマンドは、以下を出力します:

    Dry run:
    mb
      hashes ma SHA-256 07667d5032004b37b42ec2bb81b46df380cf29e66962a16481ace2e71e74073a

    これは、jmod hashコマンド(--dry-runオプションなし)が、モジュールmbにリーフ・モジュールmaのハッシュ値を記録することを示します。

  4. jmodhashexディレクトリに格納されているJMODアーカイブ・ファイルにハッシュ値を記録します。 jmodhashexディレクトリから次のコマンドを実行します:

    jmod hash --module-path jmods --hash-modules .*

    このコマンドは、以下を出力します:

    Hashes are recorded in module mb

  5. jmodhashex ディレクトリに格納されている各JMODアーカイブに関する情報を出力します。 強調表示されたコマンドをjmodhashexディレクトリから実行します:

    jmod describe jmods/ma.jmod
    
    ma
      requires mandated java.base
      requires mb
    
    jmod describe jmods/mb.jmod
    
    mb
      requires mandated java.base
      hashes ma SHA-256 07667d5032004b37b42ec2bb81b46df380cf29e66962a16481ace2e71e74073a
  6. ディレクトリjmodhashex2のモジュールmaを含むランタイム・イメージを作成し、ディレクトリjmodhashexのモジュールmbを作成してみます。 jmodhashex2ディレクトリから次のコマンドを実行します:

    • LinuxおよびOS X:

      jlink --module-path $JAVA_HOME/jmods:jmods/ma.jmod:../jmodhashex/jmods/mb.jmod --add-modules ma --output ma-app

    • Windows:

      jlink --module-path %JAVA_HOME%/jmods;jmods/ma.jmod;../jmodhashex/jmods/mb.jmod --add-modules ma --output ma-app

    このコマンドは、次のようなエラー・メッセージを表示します:

    Error: Hash of ma (a2d77889b0cb067df02a3abc39b01ac1151966157a68dc4241562c60499150d2) differs to
    expected hash (07667d5032004b37b42ec2bb81b46df380cf29e66962a16481ace2e71e74073a) recorded in mb