工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java 9マルチリリースJAR:プラットフォーム固有のクラスバージョンを共存させる

Java 9では、JAR形式が拡張され、異なるバージョンのJavaクラスやリソースをプラットフォームに応じて保持・使用できるようになりました。JAR内のMANIFEST.MFファイルのメインセクションにMulti-Release: trueエントリを追加します。META-INFディレクトリにversionsサブディレクトリが含まれ、そのサブディレクトリ(Java 9なら9から始まる)にバージョン固有のクラスとリソースファイルを格納します。

この例では、マルチリリースJARを使ってTester.javaの2つのバージョン(JDK 7用とJDK 9用)を持ち、異なるJDKバージョンで実行します。

手順

ステップ1:JDK 7用クラス作成

c:/test/java7/com/tutorialspointフォルダを作成し、Tester.javaを配置:

package com.tutorialspoint;
public class Tester {
    public static void main(String[] args) {
        System.out.println("Inside java 7");
    }
}

ステップ2:JDK 9用クラス作成

c:/test/java9/com/tutorialspointフォルダを作成し、Tester.javaを配置:

package com.tutorialspoint;
public class Tester {
    public static void main(String[] args) {
        System.out.println("Inside java 9");
    }
}

コンパイル

C:\test > javac --release 9 java9/com/tutorialspoint/Tester.java
C:\JAVA > javac --release 7 java7/com/tutorialspoint/Tester.java

マルチリリースJAR作成

C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9.
Warning: entry META-INF/versions/9/com/tutorialspoint/Tester.java, multiple resources with same name

JDK 7で実行

C:\JAVA > java -cp test.jar com.tutorialspoint.Tester
Inside Java 7

JDK 9で実行

C:\JAVA > java -cp test.jar com.tutorialspoint.Tester
Inside Java 9

同じJARファイルで、実行環境のJDKバージョンに応じて適切なクラスが自動選択されます。

Java

  1. Java演算子をマスター:種類、構文、実践例
  2. Javaコメント:種類、使い方、ベストプラクティス
  3. Java拡張forループをマスター:構文、例、ベストプラクティス
  4. Java文字列をマスター:生成、メソッド、ベストプラクティス
  5. Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
  6. Java無名インナークラス完全ガイド:定義、構文、実践例
  7. Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
  8. Javaアノテーション完全ガイド:種類、配置場所、実践例
  9. Javaアサーション完全ガイド:バグ早期発見とコード信頼性の向上
  10. Java Vectorの理解:使い方、特徴、ArrayListとの比較
  11. Java 9マルチリリースJAR:プラットフォーム固有のクラスバージョンを共存させる