私はジグソーパズル ここからクイックスタート に従います。私は与えられたjlink
コマンドを正常に実行しました:
jlink --module-path $Java_HOME/jmods:mlib --add-modules com.greetings --output greetingsapp
これにより、次のような展開されたディレクトリ構造である「ランタイムイメージ」が生成されます。
~ tree -d greetingsapp
greetingsapp
├── bin
├── conf
│ └── security
│ └── policy
│ ├── limited
│ └── unlimited
├── include
│ └── darwin
├── legal
│ └── Java.base
└── lib
├── jli
├── security
└── server
これをどのように実行しますか?展開されたディレクトリツリーではなく、バイナリ実行可能ファイルを期待していました。
bin
ディレクトリには、Java
とkeytool
があります。バンドルされているJava
実行可能ファイルを介して実行する.jarファイルまたは.classファイルが見つかりません。
実行するには、次のようにします。
greetingsapp/bin/Java -m com.greetings/com.greetings.Main
または、これを行うランチャースクリプトをjlinkにビルドさせることができます
jlink --module-path $Java_HOME/jmods:mlib --add-modules com.greetings --output greetingsapp --launcher launch=com.greetings/com.greetings.Main
次に実行します:
greetingsapp/bin/launcher
同じドキュメントを作成します:-
$ Java -p mods -m com.greetings/com.greetings.Main
Main
を使用してリンクすることなく、モジュール構造からjshell
クラスを実行するために実行することもできます。
また、jlink
はリンカーツールであり、一連のモジュールをそれらの推移的な依存関係とともにリンクして、と呼ばれるカスタムモジュラーランタイムイメージを作成するために使用できます モジュール式ランタイムイメージこれは、Java 9モジュールで導入された JMODツール を使用して実現できます。コメントで指摘され、 @ Jorn メインクラスを実行するだけの場合。
生成されたイメージのbinフォルダーにあるJavaバイナリーを使用し、次のコマンドを使用することにより、アプリケーションを実行できます。
Java com.greetings.Main
一方、さらにモジュールとして使用する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
[〜#〜] edit [〜#〜]:展開+明確にして、私が探していた答えを得ました。