HOWTO · Java

Java 条件付きコンパイル

この記事では、特定の条件または Java バージョンに基づいてさまざまな Java コードをコンパイルする方法を説明します。

このページの内容

この記事では、Java コードを条件付きでコンパイルする方法を学びます。 条件付きコンパイルは、特定の条件 (Java バージョン固有または OS 固有) に基づいてコードをコンパイルするときに、コードのチャンクを削除します。

Java での条件付きコンパイル

条件付きコンパイルを設定する最も簡単な方法は、グローバルなブール変数を作成し、その値に従ってコードをコンパイルすることです。 以下のサンプルコードを使用して条件付きコンパイルを理解しましょう。

Java での条件付きコンパイルにブール変数を使用する

以下の例では、javaversion.java という名前のファイルを作成し、そのファイル内に Javaversion クラスを作成しました。このクラスには、public static 変数名 Version が含まれています。

test.java ファイルでは、Version 変数にアクセスし、バージョンに従って Java コードをコンパイルしています。

javaversion.java:

class Javaversion {
  //
  public static final String Version = "Java 19";
}

test.java:

class Test {
  public static void main(String[] args) {
    System.out.println("Hello, World!");
    if (Javaversion.Version == "Java 19") {
      System.out.println("Code block executed for java 19");
    } else {
      System.out.println("Code block executed for < java 19");
    }
  }
}

出力:

Hello, World!
Code block executed for java 19

また、ユーザーは、Java のさまざまなコードでさまざまなファイルを作成し、特定の条件に従ってさまざまなファイルをコンパイルすることができます。

try {
  Class.forName(<class Name>);
  // execute the code for the `Java 17` version
  return new Java17();
} catch (Exception e) {
  // fall back
  return new Java19();
}

上記の擬似コードでは、Class.name() メソッドを使用してクラスを検出し、Java17 または Java19 クラスのオブジェクトを返しています。 ここで、ユーザーは Java17 および Java19 クラスを別のファイルに作成する必要があります。