Java 9 多版本兼容 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/codercto,并在该文件夹下创建 Test.java 文件,代码如下:
package com.codercto;
public class Tester {
public static void main(String[] args) {
System.out.println("Inside java 7");
}
}
第二步
创建文件夹 c:/test/java9/com/codercto,并在该文件夹下创建 Test.java 文件,代码如下:
package com.codercto;
public class Tester {
public static void main(String[] args) {
System.out.println("Inside java 9");
}
}
编译源代码:
C:\test > javac --release 9 java9/com/codercto/Tester.java C:\JAVA > javac --release 7 java7/com/codercto/Tester.java
创建多版本兼容 jar 包
C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9. Warning: entry META-INF/versions/9/com/codercto/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
点击查看所有 Java 教程 文章: https://codercto.com/courses/l/12.html
写给大家看的设计书(第4版)
Robin Williams / 苏金国、李盼 / 人民邮电出版社 / 2016-1 / 59.00元
畅销设计入门书最新版,让每个人都能成为设计师 在这个创意无处不在的时代,越来越多的人成为设计师。简历、论文、PPT、个人主页、博客、活动海报、给客人的邮件、名片……,处处都在考验你的设计能力。 美术功课不好?没有艺术细胞?毫无设计经验? 没关系!在设计大师RobinWilliams看来,设计其实很简单。在这部畅销全球多年、影响了一代设计师的经典著作中,RobinWilliams将......一起来看看 《写给大家看的设计书(第4版)》 这本书的介绍吧!