Java ランタイム・プロパティーの概要

EGL により生成された Java™ プログラムでは、実行時に情報提供を行う一連のプロパティーを使用します。 これらのほとんどの Java ランタイム・プロパティーは、ビルド記述子オプションを使用して設定します。ビルド記述子オプションには、EGL ビルド・パーツ・エディターでビルド記述子パーツを編集することによって値を割り当てます。

注: EGL 生成の Java VGWebTransaction プログラムは、特殊なケースを表します。J2EE で実行されるか、J2EE 以外の環境で実行されるかの判別は、プログラム・プロパティー enableJ2EE の設定によって異なります。 (デフォルト値は NO です。) VGWebTransaction プログラムで作業しているためにこのトピックを読んでいる場合は、ビルド記述子オプション j2ee への参照を確認する場合は常に以下の作業を行って、プログラム・プロパティー enableJ2EE の値を代わりに検討してください。
生成時、ビルド記述子オプションの値は、対応する Java ランタイム・プロパティーに保存され、そのプロパティーは以下のいずれかのファイルにリストされます。

その後に、J2EE デプロイメント記述子または Java プロパティー・ファイルで、ランタイム・プロパティーの値を編集することができるので、再びコードを生成する必要はありません。

EGL が、ビルド記述子オプションを使用してランタイム・プロパティーを作成するようにするには、genProperties ビルド記述子オプションを PROGRAM または GLOBAL に設定する必要があります。

ビルド記述子およびプログラム・プロパティー

Java ランタイム・プロパティーを生成している場合、 それらは以下のシナリオの 1 つに従って、作成および保存されます。
  1. Java ランタイム・プロパティーを J2EE デプロイメント記述子に生成するには、以下の手順に従います。
    1. j2ee ビルド記述子オプションを YES に設定します。
    2. genProperties ビルド記述子オプションを PROGRAM または GLOBAL に設定します。
    3. J2EE プロジェクトにコードを生成します。
  2. J2EE 環境ファイルにプロパティーを生成するには、以下のステップを実行します。
    1. j2ee ビルド記述子オプションを YES に設定します。
    2. genProperties ビルド記述子オプションを PROGRAM または GLOBAL に設定します。
    3. 以下のいずれか 1 つを行います。
      • ディレクトリーの中に生成する。この場合、genProject ビルド記述子オプションではなく、genDirectory ビルド記述子オプションを使用します。
      • 非 J2EE プロジェクトの中に生成する。
    J2EE 環境ファイルに保存されたプロパティーは、生成時に自動的に更新されないので注意してください。
  3. 生成されるプログラムと同じ名前を持つプログラム・プロパティー・ファイルを生成するには、以下の手順に従います。
    1. j2ee ビルド記述子オプションを NO に設定します。
    2. genProperties ビルド記述子オプションを PROGRAM に設定します。
    3. 以下のいずれか 1 つを行います。
      • ディレクトリーの中に生成する。この場合、genProject ビルド記述子オプションではなく、genDirectory ビルド記述子オプションを使用します。
      • 非 J2EE プロジェクトの中に生成する。
  4. rununit.properties という名前のプログラム・プロパティー・ファイルを生成するには、以下の手順に従います。
    1. j2ee ビルド記述子オプションを NO に設定します。
    2. genProperties ビルド記述子オプションを GLOBAL に設定します。
    3. 以下のいずれか 1 つを行います。
      • ディレクトリーの中に生成する。この場合、genProject ビルド記述子オプションではなく、genDirectory ビルド記述子オプションを使用します。
      • 非 J2EE プロジェクトの中に生成する。
  5. プロパティーをまったく生成しない場合は、genProperties を NO に設定します。

J2EE 環境では

J2EE 環境で実行される Java プログラムを生成する場合は、以下のいずれかの方法で Java ランタイム・プロパティーを作成することができます。
  • 前のセクションの最初のシナリオのステップに従って、Java ランタイム・プロパティーを直接 J2EE デプロイメント記述子に生成することができます。この場合、EGL は既に存在するプロパティーを上書きし、存在しないプロパティーを追加します。 生成された Java プログラムは実行時に J2EE デプロイメント記述子にアクセスします。
  • あるいは、前のセクションの 2 番目のシナリオのステップに従って、ランタイム・プロパティーを J2EE 環境ファイルに生成することもできます。 このファイル内のプロパティーをカスタマイズした後、J2EE デプロイメント記述子にコピーできます。
  • また、前のセクションの 5 番目のシナリオに従って、genProperties ビルド記述子オプションを NO に設定し、ランタイム・プロパティーを生成しないようにすることもできます。 この場合は、必要な Java ランタイム・プロパティーを手動で書き込む必要があります。

J2EE モジュールでは、すべてのプログラムが同じランタイム・プロパティーを持ちます。 これは、モジュール内のすべてのコードが同じ J2EE デプロイメント記述子を共用するためです。

J2EE サーバーの場合、次の例のように、プロパティーは env-entry タグとして web.xml ファイル内で指定され、そのファイルが Web プロジェクトへ関連付けられます。
  <env-entry>
		  <env-entry-name>vgj.nls.code</env-entry-name>
    <env-entry-value>ENU</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>

  <env-entry>
    <env-entry-name>vgj.nls.number.decimal</env-entry-name>
    <env-entry-value>.</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>

非 J2EE 環境では

J2EE 環境外で実行される生成済みの Java プログラムを生成する場合、 genProperties ビルド記述子オプションを PROGRAM または GLOBAL に設定して、EGL がプログラム・プロパティー・ファイルにランタイム・プロパティーを生成するか、プログラム・プロパティー・ファイルを手動でコーディングできます。 プログラム・プロパティー・ファイルには、 デプロイメント記述子に使用可能なさまざまな情報が書き込まれていますが、プロパティーの 形式は異なります。

非 J2EE Java 環境では、 ランタイム・プロパティーをいくつかのプロパティー・ファイル内に指定でき、それらのファイルは次の順序で検索されます。
  1. user.properties
  2. 次のような名前のファイル。
      programName.properties
    programName は実行単位内にある最初のプログラムです。
  3. rununit.properties

あるユーザーに固有のプロパティーを指定するときは、user.properties を使用する方法が適しています。 EGL は、このファイルの内容を生成しません。

実行単位の最初のプログラムがファイルまたはデータベースにアクセスせず、 そうしたアクセスを実行するプログラムを呼び出す場合には、rununit.properties を使用する方法が特に適しています。 例えば、次のようになります。
  • 呼び出し側プログラムを生成する場合、生成されたプログラム用に名付けられた プログラム・プロパティー・ファイルを生成することができます。 その内容には、データベース関連、またはファイル関連のプロパティーは含まれない場合が あります。
  • 呼び出し先プログラムを生成する場合、rununit.properties を生成することができます。 その内容は、両方のプログラムで使用可能です。

これらのプロパティー・ファイルは、いずれも必須のものではなく、 単純なプログラムでは、どのファイルも必要ではありません。

非 J2EE コードのデプロイに関する規則

デプロイメント時には、以下の規則が適用されます。
  • ユーザー・プロパティー・ファイル (存在する場合は、user.properties) は、user.home Java システム・プロパティーによって定められたユーザー・ホーム・ディレクトリーの中に置きます。
  • プログラム・プロパティー・ファイル (存在する場合) のロケーションは、プログラムがパッケージに入っているかどうかによって異なります。 分かりやすいように、規則の例を次に示します。
    • プログラム P がパッケージ x.y.z 内にあり、MyProject/src にデプロイされている場合、プログラム・プロパティー・ファイルは MyProject/src/x/y/z に入っている必要があります。
    • プログラム P がパッケージ内にはなく、MyProject/src にデプロイされる場合、プログラム・プロパティー・ファイルは (グローバル・プロパティー・ファイルのように) MyProject/src に入っている必要があります。

    いずれの場合でも、MyProject/src がクラスパスに入っている必要があります。

  • グローバル・プロパティー・ファイル (存在する場合は rununit.properties) は、 プログラムと一緒に、クラスパスで指定されたディレクトリーに入っている必要があります。

Java プロジェクトへの出力を生成した場合、EGL は (user.properties 以外の) プロパティー・ファイルを適切なフォルダーに配置します。

EGL コード内でランタイム・プロパティーにアクセスする方法の詳細については、 「EGL 言語解説書」内のトピック『getProperty()』および『実行単位』を参照してください。


フィードバック