• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java8新特性
    Java9新特性

    Java9多版本兼容jar包

     

     

    多版本兼容 JAR 功能能讓你創建僅在特定版本的 Java 環境中運行庫程序時選擇使用的 class 版本。

     

    通過 --release 參數指定編譯版本。

     

    具體的變化就是 META-INF 目錄下 MANIFEST.MF 文件新增了一個屬性:

     

    Multi-Release: true

     

    然后 META-INF 目錄下還新增了一個 versions 目錄,如果是要支持 java9,則在 versions 目錄下有 9 的目錄。

     

    multirelease.jar
    ├── META-INF
    │   └── versions
    │       └── 9
    │           └── multirelease
    │               └── Helper.class
    ├── multirelease
        ├── Helper.class
        └── Main.class

     

    在以下實例中,我們使用多版本兼容 JAR 功能將 Tester.java 文件生成了兩個版本的 jar 包, 一個是 jdk 7,另一個是 jdk 9,然后我們再不同環境下執行。

     

    第一步

     

    創建文件夾 c:/test/java7/com/bjpowernode,并在該文件夾下創建 Test.java 文件,代碼如下:

     

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

     

    第二步

     

    創建文件夾 c:/test/java9/com/bjpowernode,并在該文件夾下創建 Test.java 文件,代碼如下:

     

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

     

    編譯源代碼:

     

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

     

    創建多版本兼容 jar 包

     

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

     

    使用 JDK 7 執行:

     

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

     

    使用 JDK 9 執行:

     

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

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏