该文章Github地址:https://github.com/AntonyCheng/java-notes【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】
在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】& CSDN文章地址:https://blog.csdn.net/AntonyCheng/article/details/136555245),该模板集成了最常见的开发组件,同时基于修改配置文件实现组件的装载,除了这些,模板中还有非常丰富的整合示例,同时单体架构也非常适合SpringBoot框架入门,如果觉得有意义或者有帮助,欢迎Star & Issues & PR!
上一章:由浅到深认识Java语言(51):JDK9新特性(模块化&REPL)
54.JDK9新特性
改进JavaDocs
一直以来,Java 生成的文档 JavaDoc 一直使用的都是 HTML 4 格式,这次 Java 9 使用了 HTML 5,但还不是默认的,如果要输出 HTML 5 格式,还必须在命令行程序中添加 -html5 选项。
旧的JavaDoc文档格式
假设工作区是 D:\javadoc
,那么在其下 src
目录中创建一个 JavaDocTester.java
文件:
然后就可以使用 javadoc
命令输出该类的文档:
D:\javadoc\src>javadoc.exe -encoding UTF-8 -d . JavaDocTester.j
ava
正在加载源文件JavaDocTester.java...
正在构造 Javadoc 信息...
javadoc: 警告 - 未指定要使用的 HTML 版本。
默认值当前为 HTML 4.01,但在未来发行版中
将更改为 HTML5。要隐藏此警告,请使用 -html4
或 -html5 选项,指定要由此 doclet 生成的、
在文档注释中使用的 HTML 版本。
标准 Doclet 版本 10.0.2
正在构建所有程序包和类的树...
正在生成./JavaDocTester.html...
正在生成./package-frame.html...
正在生成./package-summary.html...
正在生成./package-tree.html...
正在生成./constant-values.html...
正在构建所有程序包和类的索引...
正在生成./overview-tree.html...
正在生成./index-all.html...
正在生成./deprecated-list.html...
正在构建所有类的索引...
正在生成./allclasses-frame.html...
正在生成./allclasses-frame.html...
正在生成./allclasses-noframe.html...
正在生成./allclasses-noframe.html...
正在生成./index.html...
正在生成./help-doc.html...
1 个警告
可以看到 javadoc
默认使用的还是 html 4.0.1
版本,可以在浏览器中打开生成的 index.html
文件:
新的JavaDoc文档格式
从上面的输出结果中还可以看出,可以使用 -html5
选项指定输出结果为 HTML 5
:
D:\javadoc\src>javadoc -html5 -encoding UTF-8 -d . JavaDocTester.java
正在加载源文件JavaDocTester.java...
正在构造 Javadoc 信息...
标准 Doclet 版本 10.0.2
正在构建所有程序包和类的树...
正在生成./JavaDocTester.html...
正在生成./package-frame.html...
正在生成./package-summary.html...
正在生成./package-tree.html...
正在生成./constant-values.html...
正在构建所有程序包和类的索引...
正在生成./overview-tree.html...
正在生成./index-all.html...
正在生成./deprecated-list.html...
正在构建所有类的索引...
正在生成./allclasses-frame.html...
正在生成./allclasses-frame.html...
正在生成./allclasses-noframe.html...
正在生成./allclasses-noframe.html...
正在生成./index.html...
正在生成./help-doc.html...
当使用HTML 5 格式时,输出日志都变少,然后打开当前目录下的 index.html ,可以发现页面长的还是一样:
多版本共存JAR
Java 9 之前的 JAR 格式中只能包含一个 Java 版本,显然,这是不符合 Java 这种开启了版本帝的发展线路了,想想,现在大多数 Java 还停留在 Java 6 7 8 的年代,Java 10 已经发布,如果要发布一个 JAR 格式的类库,意味着要编译多个版本的 JAR 所以 Java 9 开始支持多版本共存的 JAR 了。Java 9 引入了一个新的功能,其实也不算,就是增强了 JAR 格式,可以在同一个 JAR 中维护和使用不同版本的 java 类或资源。
JAR多版本共存原理
首先在 JAR 中,文件 MANIFEST.MF 文件的 main 节中有一个条目 Multi-Release:true,用于指定该 JAR 包是多 Java 版本共存的。同时,JAR 目录下的子目录 META-INF 还包含一个 versions 子目录,其子目录 (从 9 开始,用于 Java 9) 存储特定于版本的类和资源文件。
多版本编译示例
javac --release 10 -d java10 src/main/java10/top.sharehome/MultiReleaseJarTester.java
javac --release 9 -d java9 src/main/java9/top.sharehome/MultiReleaseJarTester.java
javac --release 8 -d java8 src/main/java8/top.sharehome/MultiReleaseJarTester.java
最重要的就是带上 --release [version]
属性。
注意:
首先,没必要特别区分 java10
、 java9
、 java8
这几个目录,如果代码都相同,只要一份即可;
其次,多版本真正最重要的是编译的时候带上 --release [version]
版本号,用来指定编译版本;
最后,一定要存在一个默认版本,一般情况下,可以使用主流版本为默认版本,这个默认版本可以不用添加 --release
参数;