Home >Java >javaTutorial >What is the use of multi-version compatible jars in Java 9?

What is the use of multi-version compatible jars in Java 9?

WBOY
WBOYforward
2023-09-06 16:49:07574browse

Java 9中的多版本兼容jar的用途是什么?

Multi-version compatible JAR function allows us to choose to use the version of the class we want when running the library program in a specific version of the Java environment . We can specify the compiled version through the --release parameter.

One specific change is that there is a new attribute in the MANIFEST.MF file in the META-INF directory, as shown below

<strong>Multi-Release: true</strong>
## There is a new version directory under the #"

META-INF" directory. If we want to support Java 9 version, there is a 9 directory under the versions directory.

<strong>multirelease.jar
├── META-INF
│   └── versions
│       └── 9
│           └── multirelease
│               └── Helper.class
├── multirelease
    ├── Helper.class
    └── Main.class</strong>

In the following example, we can use a

Multi-version compatible JAR function from "Test.java"The file generates two versions of jar packages. One version is jdk 7 and the other version is jdk 9, and then we execute it in different environments.

Step one: Create a folder in the C:/test/java7/com/tutorialspoint directory and create a "# in the folder ##Test.java" file, as shown below:

<strong>package com.tutorialspoint;

public class Test {
   public static void main(String args[]) {
      System.out.println("Inside Java 7");
   }
}</strong>

Step 2:

Create the folder C:/test/java9/com/tutorialspoint, and create a "Test.java" file in the folder as follows:

<strong>package com.tutorialspoint;

public class Test {
   public static void main(String args[]) {
      System.out.println("Inside Java 9");
   }
}</strong>

We can follow the following Method to compile code:

<strong>C:\test> javac --release 9 java9/com/tutorialspoint/Test.java
C:\test> javac --release 7 java7/com/tutorialspoint/Test.java</strong>

##We can create a

multi-version compatible jar package in the following way

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

Use JDK 7 to execute:

<strong>C:\JAVA> java -cp test.jar com.tutorialspoint.Test
Inside Java 7</strong>

##Use JDK 9 to execute:

<strong>C:\JAVA> java -cp test.jar com.tutorialspoint.Test
Inside Java 9</strong>

The above is the detailed content of What is the use of multi-version compatible jars in Java 9?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete