文章摘要: 检测目标 Java 存档(JAR)文件与当前安装的扩展 JAR 文件之间的版本冲突,可以确保应用程序的兼容性和稳定性。
简介
- 用于检查指定的 JAR 文件的标题和版本是否与 Java SE SDK 中安装的任何扩展存在冲突。在安装新的扩展之前,使用此工具可以预防潜在的问题。
- 该命令会对比
targetfile.jar文件清单中的Specification-title和Specification-version标头与扩展目录中当前安装的所有 JAR 文件中的相应标头。 - 在 Oracle Solaris 系统上,默认的扩展目录是
jre/lib/ext。 extcheck使用与java.lang.Package.isCompatibleWith方法相同的规则来比较版本号。- 如果没有发现冲突,
extcheck将返回代码 0。 - 如果扩展目录中的任何 JAR 文件具有相同的
Specification-title以及相同或更新的Specification-version,extcheck将返回非零错误代码。如果目标 JAR 文件的清单中缺少Specification-title或Specification-version属性,也会返回非零错误代码。
格式
提示
extcheck [选项] <参数>
选项
-verbose
- 在执行检查时,详细列出扩展目录中的 JAR 文件,并报告目标 JAR 文件的清单属性以及任何冲突的 JAR 文件。
-J<option>
- 允许将特定的选项传递给 Java 虚拟机(JVM),其中
<option>是 Java 启动器参考页面上描述的选项之一。
参数
- 目标 JAR 文件路径,用于与当前安装的扩展 JAR 文件进行比较,以检测是否存在版本冲突。
案例
# 检查 myapp.jar 文件是否与已安装的扩展冲突
extcheck -verbose myapp.jar
# 如果检测到冲突,extcheck 将输出相关信息并返回非零退出状态