インデックス

wrapper.java.additional.<n> プロパティ群

対応バージョン :1.0.0
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

このプロパティには、アプリケーションを起動するとき、Java へ引き渡す Java パラメータの追加を設定します。 アプリケーション用のパラメータではなく、むしろ JVM 向けのパラメータです。

<n> コンポーネント部:

各要素は、独自のプロパティ名を持ち、その名前は [wrapper.java.additional.]で始まり、 プロパティ名の「<n>」コンポーネント部には、 「」からカウントアップしていくインテージャー(整数値)のナンバリング数値を入れて指定します。 デフォルトでは、連番であり欠番で飛ぶことはないはずです。 [wrapper.ignore_sequence_gaps]プロパティで、 シーケンス内でギャップ(途切れ)を「許可する/許可しない」を任意に設定にすることができます。

設定例:
wrapper.java.additional.1=-server
wrapper.java.additional.2=-Dprop=TRUE

設定のポイントは、各プロパティごとに JVM へ引き渡す引数を1つずつを定義します。 引数値にスペース(空白)を含める必要がある場合には、 下記の例のように引用符で囲む必要があります

設定例(誤り):
wrapper.java.additional.1=-server -Dprop=TRUE

注意

アプリケーション固有のプロパティ、特に機密データを含む値を持つプロパティの場合は、[wrapper.app.properties.<n>]の使用を検討してください。

注意

wrapper.java.detect_debug_jvm]プロパティは「TRUE」に設定されているときに、もし [wrapper.java.additional.<n>] プロパティの一つが「-Xdebug」に設定されている場合、Wrapper は、JVM がデバッガを利用していると見なし、一部のタイムアウトを無視します。

もし、Java の追加パラメータを動的に変更したい場合、いくつかの方法があります。 1つ目は、インクルードファイル(カスケード形式)を利用して、JVM オプションと一緒に[wrapper.java.additional.<n>]プロパティ群のリストを含む生成されたコンフィギュレーションファイルを追加する方法です。 あるいは、[wrapper.java.additional_file]プロパティを使用してプロパティなしで JVM オプションを一覧表示するパラメータファイルを参照することもできます。 最後に、Wrapper 起動時にコマンドラインプロパティとして[wrapper.java.additional.<n>]プロパティ群を渡すことができます。

引数を要する Java オプションの特例

Java 9 では、複数の引数で指定されるオプション( --module-path や --add-modules など)が導入されました。 通常、引数はオプション名と空白スペースで区切られますが、 [wrapper.java.additional.<n>]プロパティの値に空白スペースが含まれている場合、 区切り文字ではなく引数値の一部として解釈されます。 それを解決する方法の一つとしてはオプション名と引数値空白スペースの代わりに等号「=」で区切ることです。

wrapper.java.additional.1=--add-modules=MODULE1,MODULE2

これは、長いオプション名('--'で始まるオプション)でしか使用ができず、 同等の短いオプション名で使用できません。 例えば、「-p=<PATH>」は使用できません(「-p」が「--module-path」の同等の短いオプション名)。

空白スペースと同等の短いオプション名の両方を利用できる別の方法とは、JDK_JAVA_OPTIONS の環境変数を利用することです。 JVM はこの変数の内容をコマンドラインのオプションに追加します。 次の構文を使用して、Wrapper コンフィギュレーションファイルから設定できます。

set.JDK_JAVA_OPTIONS=--add-modules MODULE1,MODULE2

ただし、[wrapper.java.command.loglevel] プロパティを使用して Java コマンドラインを出力するときに、JDK_JAVA_OPTIONS のコンテンツを見ることができません。なぜかと言うと、それは起動時のみに JVM によって解析されるからです。

長いオプション名や JDK_JAVA_OPTIONS 変数の詳細については、Oracle 社のウェブサイトより確認できます。

wrapper.java.additional.<n>.stripquotes プロパティ群

対応バージョン :1.0.0
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

もし[wrapper.java.additional.<n>]プロパティ値に引用符が含まれている場合、 Windows 上で、その引用符で囲まれた値が1つの引数として、JVM へ引き渡されます。 しかしながら、UNIX 上ではその引用符も引数値の一部として解釈されます。 ほとんどの場合、UNIX 上で正しい挙動ではありませんが、逆互換性の都合で、そのように維持されています。

そこで、[wrapper.java.additional.<n>.stripquotes]プロパティを利用して、 UNIX 上で余分な引用符を自動的に取り除くことを指示することができます。 このプロパティは、Windows 上では無視されます。

このプロパティのデフォルト値は、[wrapper.java.additional.default.stripquotes] プロパティの値(そのデフォルト値は「FALSE」)です。

<n> コンポーネント部:

各要素は独自の「プロパティ名」を持ち、その名前は [wrapper.java.additional.]で始まり、 プロパティ名の「<n>」コンポーネント部には、 「1」からカウントアップしていくインテージャー(整数値)のナンバリング数値を入れて指定します。 デフォルトでは、連番であり欠番で飛ぶことはないはずです。 [wrapper.ignore_sequence_gaps]プロパティで シーケンス内でギャップ(途切れ)を「許可する/許可しない」を任意に設定にすることができます。

設定例:
wrapper.java.additional.1.stripquotes=FALSE

引用符を取り除く際に、次のように文字が置き換えられます。 引用符以外の文字は、そのまま残ります。

  • '\\'」は、「'\'」になります
  • '\"'」は、「'"'」になります
  • '"'」は、「''」になります
設定例:
wrapper.java.additional.1=-server
wrapper.java.additional.2=-Dprop=TRUE
wrapper.java.additional.3=-Dmyapp.data="../MyApp Home"
wrapper.java.additional.3.stripquotes=TRUE

wrapper.java.additional.default.stripquotes プロパティ

対応バージョン :3.5.17
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

wrapper.java.additional.<n>]プロパティに設定した全ての値に対して、 UNIX 上で引用符を取り除くのか、デフォルト動作を指定することができます。 デフォルト値は「FALSE」です。 このプロパティは、Windows 上では無視されます。

設定例:
wrapper.java.additional.default.stripquotes=FALSE

wrapper.java.additional.<n>.java_version.min プロパティ

対応バージョン :3.5.36
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

このプロパティは、Java のバージョンが指定された値以上の場合にのみ、インデックス 「n」でオプションを追加するために使用できます。

デフォルト値は「1.4」で、Wrapper がサポートする最も古い JVM バージョンです。 それより低い値であれば、Wrapper が終了します。

値は、Java バージョンに関わらず、「1.major[.minor[_revision]]」あるいは「major[.minor[.revision]]」のフォーマットを使います。 これは、「java -version」によって返された両方のナンバリングスキームをサポートするために行われます。 Java 9 以前では、最初のフォーマットが使用されていましたが、Java 9 以上では最後のフォーマットが使用されます。

角括弧は、マイナー及リビジョンのコンポネントがオプショナルであることを示します。 片方または両方を指定しないと、これらのプレースホルダは任意の数値を受け入れることになります。

インデックス「n」のオプションは Java バージョン 1.7 以下で無視される例:
wrapper.java.additional.<n>.java_version.min=1.7
インデックス「n」のオプションは Java バージョン 8.0.40 以下で無視される例:
wrapper.java.additional.<n>.java_version.min=8.0.40

警告

wrapper.java.additional.<n>.java_version.max プロパティ群

対応バージョン :3.5.36
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

このプロパティは、Java のバージョンが指定された値以下の場合にのみ、インデックス 「n」でオプションを追加するために使用できます。

デフォルト値は「UNLIMITED」です.

値は、Java バージョンに関わらず、「1.major[.minor[_revision]]」あるいは「major[.minor[.revision]]」のフォーマットを使います。 これは、「java -version」によって返された両方のナンバリングスキームをサポートするために行われます。 Java 9 以前では、最初のフォーマットが使用されていましたが、Java 9 以上では最後のフォーマットが使用されます。

角括弧は、マイナー及リビジョンのコンポネントがオプショナルであることを示します。 片方または両方を指定しないと、これらのプレースホルダは任意の数値を受け入れることになります。

インデックス「n」のオプションは Java バージョン 9.0.1 以上で無視される例:
wrapper.java.additional.<n>.java_version.max=9.0.1
インデックス「n」のオプションは Java バージョン 9 以上で無視される例:
wrapper.java.additional.<n>.java_version.max=9

警告

wrapper.java.additional.<n>.app_only プロパティ群

対応バージョン :3.5.57(Java 9 以上が必要)(3.5.60 版で非推奨に)
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

警告

このプロパティは Wrapper ver. 3.5.60 で廃止され、 代わりに [wrapper.java.additional.<n>.scope] プロパティが追加されました。

JVM を起動して Java アプリケーションを実行する前に、Wrapper は「--dry-run」オプションを指定して Java コマンド ラインを実行し、コマンド ラインが有効であることを確認します。

wrapper.java.additional.<n>.app_only]プロパティを「TRUE」に設定すると、 --dry-run」コマンドラインのオプションをスキップできます

このプロパティは、「--dry-run」オプションをサポートしない Java バージョン(Java 9 以前)を使用する場合には効果がありません。

デフォルト値は「FALSE」です。 これは、指定されたオプションが実際の Java コマンドラインと「--dry-run」コマンドラインの両方に存在することを意味します。 ほとんどの場合、すべての JVM オプションがチェックされるように「FALSE」が推奨されます。

注意

このプロパティを「TRUE」に設定すると、指定されたオプションの有効性チェックがバイパスされます。

ただし、[wrapper.java.additional.<n>.app_only]プロパティを 「TRUE」に設定すると便利な場合もあります。 たとえば、JVM のネイティブメモリを追跡するために -XX:NativeMemoryTracking=[off|summary|detail] オプションを使用すると、--dry-runコマンドラインで使用すると警告が表示されます。

OpenJDK 64-Bit Server VM warning: Native Memory Tracking did not setup properly, using wrong launcher?

ほとんどの場合、出力は[wrapper.java.query.loglevel]プロパティで指定されたレベル (デフォルトでは DEBUG) でログに記録されるため、この警告は表示されません。 ただし、「--dry-run」 JVM はユーザーのネイティブコードを実行しないため、いずれにしてもそのネイティブメモリ使用量を 追跡することはできません。 したがって、このオプションを「--dry-run」コマンドラインに含めないことをお勧めします。

設定例(アプリケーションの実行時のみ -XX:NativeMemoryTracking を有効にする):
wrapper.java.additional.4=-XX:NativeMemoryTracking=summary
wrapper.java.additional.4.app_only=TRUE

wrapper.java.additional.<n>.scope プロパティ群

対応バージョン :3.5.60
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

警告

このプロパティの説明を読まずに、パラメータを変更することは絶対にしないで下さい。 設定を間違えると、期待どおりに動作せず、Wrapper の動作不良や不具合の原因となります。

Java アプリケーションを起動する前に、Wrapper は java コマンドを数回実行して、現在の Java インストールの特性とアプリケーションに適切な設定を判断します。 ほとんどの場合、これらの Java 呼び出しのコマンドラインは、ユーザーが気にすることなく Wrapper によって構築されます。 ただし、まれなシナリオでは、これらのコマンドラインに特定のオプションを追加または削除する必要がある場合もあります。 まず、これらの Java 呼び出しとその役割のリストを一覧にしてみましょう。

  • java --version:この呼び出しは、現在の Java インストールに関する情報 (バージョン、ベンダーなど) を取得します。「--version」パラメータのみを使用するため、追加のオプションは必要ありません。

  • WrapperBootstrap クラスへの呼び出し: この呼び出しは、Java アプリケーションに関する情報 (メインモジュール、メインクラス、パッケージなど) を取得します。 Wrapper は独自のオプションとパラメータを使用してコマンドラインを構築します。特に、クラスパス、モジュールパス、モジュールリストは、 アプリケーションの起動時に使用されるコマンドのものと完全に一致する必要があります。 まれに、メインクラスをロードするために、ユーザーが追加の引数を追加する場合があります。

  • --dry-run」オプションを使用して呼び出し:「--dry-run」オプションは Java 9 で導入されたため、この呼び出しは以前の Java バージョンでは実行されません。 この呼び出しは、アプリケーションを実行する直前に Java コマンドラインを検証するために使用されます。 コマンドラインは、基本的に、メインメソッドを実行しないよう指定する「--dry-run」オプションを追加して、 アプリケーションを起動するときに使用されるものです。

    まれに、ドライランコンテキストに関係のない特定のオプションを削除したい場合があります。 たとえば、JVM のネイティブメモリを追跡するために「-XX:NativeMemoryTracking=[off|summary|detail]」オプションを使用すると、--dry-run コマンドラインで使用すると警告が表示されます。

    OpenJDK 64-Bit Server VM warning: Native Memory Tracking did not setup properly, using wrong launcher?
    

    ほとんどの場合、出力は[wrapper.java.query.loglevel]プロパティで指定されたレベル (デフォルトでは DEBUG) でログに記録されるため、この警告は表示されません。 ただし、「--dry-run」 JVM ではユーザーのネイティブコードが実行されないため、ネイティブメモリの使用状況を追跡することはできません。 したがって、このオプションを「--dry-run」コマンドラインに含めない方がよいでしょう。

wrapper.java.additional.<n>.scope]プロパティは、インデック「n」 のパラメータがどのコマンドラインで参照されるかを設定します。

可能な値は:

  • [DRYRUN_APP] : パラメータを --dry-runインスタンスとアプリケーションの両方に渡します。この値はほとんどの場合に適しています。

  • [APP] :パラメータをアプリケーションだけに渡します。

  • [BOOTSTRAP_DRYRUN_APP] :パラメータをブートストラップインスタンス、--dry-runインスタンス、およびアプリケーションに渡します。

デフォルト値は「DRYRUN_APP」です。.

設定例:
# The following option is used for the --dry-run and application calls:
wrapper.java.additional.1=-Xmx1g
wrapper.java.additional.1.scope=DRYRUN_APP

# The following option is only for the application:
wrapper.java.additional.2=-agentlib:mylib
wrapper.java.additional.2.scope=BOOTSTRAP_DRYRUN_APP

# The following option is used for the --dry-run, bootstrap and Application calls:
wrapper.java.additional.3=-XX:NativeMemoryTracking=summary
wrapper.java.additional.3.scope=APP

wrapper.java.additional_file プロパティ

対応バージョン :3.5.16
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

一部のケースでは、Wrapper コンフィギュレーションファイル内に Java パラメータをリスト化すると、 不便な場合もあります。 このプロパティで、一つまたは複数のパラメータを含むファイルを指定して、起動時に JVM へ引き渡すことが可能です。 これは、パラメータリストを動的に、またはインストーラを介して生成する必要がある場合に非常に役立ちます。

標準の[wrapper.java.additional.<n>]プロパティで定義されたものが先で、 その後に、このファイル定義によるパラメータが適用されます。

Wrapper ver. 3.5.23 から、ファイルの環境変数参照が拡大されます。

注意

ファイル名に WRAPPER_JAVA_VERSION の環境変数を含めると異なる Java のバージョンを対象にすることが出来ます。

パラメータファイルの記述形式:

ファイルの記述形式はシンプルです。

  • まず、Wrapper コンフィギュレーションファイルと同様に、 一行目にエンコードディレクティブを記載しなければなりません。 これは、Wrapper がファイルを読み込む際のエンコードを明示して、 ファイルを正しく解釈するために必要です。 もし、このディレクティブ行が記述されていない場合、Wrapper は、 ログに警告を記録して、処理の試みを続けます。 このファイルで利用されているエンコードが、 他のコンフィギュレーションファイルのエンコードとは異なる場合もあります。
  • 各パラメータをスペースで区切って、一行に複数のパラメータを書くことができます。
  • パラメータを複数行に分けて記述することも可能です。
  • 「#」記号は、コメント文字として解釈されますので、 プロパティ値に「#」記号を含める場合には、引用符で囲うか("#")、あるいはエスケープ文字として「#」を2つ書きます(##)。
  • 引数値にスペース(空白)を含める必要がある場合には、 クロスプラットフォーム上でも一貫して動作するように、 下記の例のように引用符で囲む必要があります。
パラメータファイル UTF-8 記述例:
#encoding=UTF-8
# パラメータ記述例:一行に複数のパラメータをスペース(空白)区切りで
-DTEST1=Value1 -DTEST2=Value2

# 行を分けてパラメータを追記
-DTEST3=Value3

wrapper.java.additional_file.required プロパティ

対応バージョン :3.5.36
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

Java 追加ファイルが必要かどうかを指定します。もし、必要の場合で検出できない場合、 Wrapper は、JVM を開始せず停止します。必要ではない場合は、ファイルは検出不可の場合は無視されます

デフォルト値は「TRUE」です。

設定例:
wrapper.java.additional_file.required=FALSE

wrapper.java.additional_file.stripquotes プロパティ

対応バージョン :3.5.16
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

異なるプラットフォームごとに、スペース(空白)を含むパラメータの取り扱い方法が異なります。 一貫性を持たせコンフィギュレーションを正しく動かすために、 その引数(プロパティ値)を引用符で常に囲む必要があります。 Windows 上ではそのまま扱われ問題ありませんが、 UNIX 上では、コマンドラインがパラメータリストに入り込むため、引用符は取り除かれます。

ほとんど全てのケースにおいて、引用符を取り除くことを希望する方が多いでしょう。 このプロパティのデフォルト値は「FALSE」です。

設定例:
wrapper.java.additional_file.stripquotes=FALSE
パラメータファイル UTF-8 記述例:
#encoding=UTF-8
-DTEST1=Value1 -DTEST2="Test Value with spaces."

使用例

インテグレーション方法

下記のページでは Java アプリケーションに Java Service Wrapper をインテグレーション(統合化)する4つの異なる手法を説明します。 各手法は、「wrapper.java.additional.<n>」プロパーティを利用するメモリー、クラス、ライブラリなどのパスを設定する実施例の例示されています。

JMX 制限

「wrapper.java.additional.<n>」プロパティは VisualVM や JConsole などの監視ツールを設定するためにも使用できます。

Java 最大メモリー制限

Wrapper は、JVM が使用できるメモリー容量を制限するいくつかのプロパティーを提供しています。 そのプロパティの代わりに「wrapper.java.additional.<n>」プロパティを利用しても 同じ効果が得られます。 詳細については下記のページをご参照ください。

参照: パラメータ