【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编译

相关文章
相关标签/搜索