【JAVA9】多jdk版本JAR包

 

        從java9開始能夠經過jar 命令能夠讓一個jar包包含多個jdk版本的源碼。在其MANIFEST.MF文件中須要包含下面這個配置。java

Multi-Release: true

        一個普通的jar包目錄以下:oracle

        一個包含了<jdk9版本和jdk9編譯的jar包以下:.net

        一個包含了<jdk9版本和jdk9以及jdk10編譯的jar包以下:code

        它須要先將經過低於jdk9版本的編譯的class文件打包成jar包,而後再將jdk九、jdk10編譯後文件放入到以前編譯的jar包中。htm

        對於低於jdk9的應用,它會默認使用root下面的class,而對於jdk九、jdk10等等會用META-INF下對應版本的class。get

       經過下面的代碼能夠在不一樣版本的jdk下取到不一樣路徑的文件input

URL r = loader.getResource("foo/baz/resource.txt");

    具體打包方式參考:https://stackoverflow.com/questions/45500592/how-to-create-multi-release-jar-and-filtering-input-content源碼

    http://docs.oracle.com/javase/9/tools/jar.htm#JSWOR614io

   參考文獻:http://openjdk.java.net/jeps/238編譯

相關文章
相關標籤/搜索