wrapper.java.version.* プロパティ群の概要

Java Service Wrapper は、「wrapper.java.command」で指定されている Java バージョンを出力することができ、Java バージョンが指定範囲外の場合、アプリケーションの起動を防ぐ機能を持っています。

注意

「jdb」または「javaw」が Java コマンドとして使用されている場合、 それらの出力を使用して、 Java バージョンやベンダーなどの情報を解析することはできません。 Wrapper 3.5.45 版以降、Wrapper は同じディレクトリ内で「java」コマンド(または、システム PATH を使用してコマンドを解決する必要がある場合は単に「java」)を探し、それを使用して情報を照会します。 それができない場合でも、[wrapper.java.version.fallback] プロパティを使用してバージョンを手動で指定できます。

wrapper.java.version.output プロパティ

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

本来のプログラムの意図とする Java バージョンと異なる Java バージョンで Java アプリケーションを動作させた時に、予期せぬ挙動に驚くこともまれにあります。

そこで、アプリケーションが開始する前に、JVM の正確なバージョンが表示されるように工夫しました。

wrapper.java.version.output]プロパティが「TRUE」に設定されている場合、 Wrapper は正確な JVM バージョンを出力します。

Wrapper 3.5.55 版以降、デフォルト値は[wrapper.java.query.loglevel]プロパティの値に基づきます。
 ・[wrapper.java.query.loglevel]プロパティが「DEBUG」に設定されている場合、[wrapper.java.version.output]はデフォルトで「FALSE」になります。
 ・[wrapper.java.query.loglevel]プロパティが「INFO」以上のレベルに設定されている場合、[wrapper.java.version.output]プロパティはデフォルトで「TRUE」になります。

Wrapper 3.5.55 版以前のバージョンでは、デフォルト値は「FALSE」でした。

また、デバッグ出力が有効になっている場合、 Wrapper は自動的に JVM バージョンを出力します。

ログ出力例:
wrapper  | JVM 起動中…
jvm 1    | java version "1.6.0_24"
jvm 1    | OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~10.04.2)
jvm 1    | OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
jvm 1    | WrapperManager: 初期化中…

注意

Wrapper 3.5.35 版 より、 Java バージョンを出力するときに、ログ出力は(JVM 1、JVM 2 など)と異なる「JVM ver.」ソースを利用します。 これは、Java アプリケーションの出力との混乱を避けるために行います。

wrapper.java.version.timeout プロパティ

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

このプロパティでは、Java バージョンが出力するまでの Wrapper が待機する時間(秒数)を指定します。 このタイムアウトが過ぎると、Wrapper はチャイルド(子)プロセスを終了させ、Java バージョンをサポートされている最小値に解決します。

JVM バージョンを取得するのはとても速いので殆どのユーザーには、このタイムアウトに達しません。 正し、遅いマシンで JVM が起動するまで時間がかかる場合には達することがあります。 延長がタイムアウトに達すると、チャイルドプロセスは終了され、JVM バージョンは出力されません。

デフォルト値は 30 秒です。 値を「0」に設定すると、Wrapper は永久にチャイルドプロセスの終了を待機します。

JVM バージョン出力に時間がかかり過ぎる例:
wrapper  | JVM 起動中…
wrapper  | チャイルドプロセス:Java バージョン:タイムアウトされました。
jvm 1    | WrapperManager: 初期化中…

wrapper.java.version.fallback プロパティ

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

このプロパティは、Wrapper が 「java -version」 の出力の解析に失敗する場合に使用されます。

設定されていない場合、サポートされている最小のバージョンへ解決されますが、 次のプロパティが使用された場合に Wrapper が停止します。

しかし、「java -version」解析に失敗した場合でも、[wrapper.java.version.fallback]を 使用すると上記すべてのプロパティが使用可能です。

Java バージョンが解析できない場合、Java 1.8 へ解決する例:
wrapper.java.version.fallback=1.8

wrapper.java.version.min プロパティ

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

このプロパティは、Wrapper が Java アプリケーションを起動できる Java の最小バージョンを指定します。

デフォルト値は「1.4」で、Wrapper がサポートできる最も古い JVM バージョンです。 それより低い値は Wrapper を停止させます。

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

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

Java 1.7 以上が許可されている例:
wrapper.java.version.min=1.7
Java 8.0.40 以上が許可されている例:
wrapper.java.version.min=8.0.40

警告

  • 誤った値は Wrapper を停止させます。これは、コンフィギュレーションを再ロードするときも適用されます。

  • wrapper.java.version.min]は、[wrapper.java.version.max]の値より大きい値に設定することが出来ません。

  • 何らかの理由で Java のバージョンを取得でない時に [wrapper.java.version.min]若しくは [wrapper.java.version.max]プロパティが デフォルト値に設定されていない場合、Wrapper が停止します。

wrapper.java.version.max プロパティ

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

このプロパティは、Wrapper が Java アプリケーションを起動できる Java の最大バージョンを指定します。

デフォルト値は「UNLIMITED」で、Wrapper が Java の最新バージョンで Java アプリケーションを起動できるようにします。 通常、後方互換性が保証されているため、Java のどのバージョンでも動作することが期待されます。 しかし、実際には動作できない場合もありますので、互換性のテストや確認するためには Java リリース日より後(或いは同じ時期)にリリースされた Wrapper バージョンの利用を薦めします。

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

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

Java 9.0.1 とそれ以前のバージョンが許可されている例:
wrapper.java.version.max=9.0.1
Java 9 のすべてのリビジョンとマイナーリリースとそれより以前のバージョンが許可されている例:
wrapper.java.version.max=9

警告

  • 誤った値は Wrapper を停止させます。これは、コンフィギュレーションを再ロードするときも適用されます。

  • wrapper.java.version.max]は、[wrapper.java.version.min]の値より小さい値に設定することが出来ません。

  • 何らかの理由で Java のバージョンを取得でない時に [wrapper.java.version.min]若しくは [wrapper.java.version.max]プロパティが デフォルト値に設定されていない場合、Wrapper が停止します。

参照: Java コマンド