在 JDK 9 之前的版本中,extcheck 是一个用于检查 Java 扩展(Extension)目录中 JAR 文件的命令行工具。Java 扩展目录是用于存放扩展库的目录,通常位于 $JAVA_HOME/jre/lib/ext 目录下。extcheck 工具可以用于检查这些扩展库的正确性,以确保它们符合 Java 扩展机制的规范。
然而,需要注意的是,从 JDK 9 开始,extcheck 工具已经被废弃,不再建议在新的应用程序中使用。这是因为 Java 9 引入了模块化系统,取代了之前的扩展机制,因此 extcheck 在模块化系统中已经不再适用。
在 JDK 9 之后,建议使用模块化系统中的工具来管理和检查模块,例如使用 jdeps 工具来分析模块之间的依赖关系。如果需要检查 JAR 文件的正确性,可以使用其他第三方工具或服务来进行静态分析和检查。
extcheck [-verbose] <jar file>
注意,extcheck 命令的基本用法是在命令行中输入 extcheck 后跟一个或多个 JAR 文件的路径,extcheck 会对这些 JAR 文件进行检查,并输出检查结果。
使用 extcheck 命令检查 jre\lib\ext 目录中的 zipfs.jar 文件,如下:
C:\Users\Administrator> extcheck -verbose "D:\ProgramFilesFree\Java\jdk1.8.0_45\jre\lib\ext\zipfs.jar" Target file:D:\ProgramFilesFree\Java\jdk1.8.0_45\jre\lib\ext\zipfs.jar Specification title:Java Platform API Specification Specification version:1.8 Specification vendor:Oracle Corporation Implementation version:1.8.0_45 Implementation vendor:Oracle Corporation Comparing with file:/D:/ProgramFilesFree/Java/jdk1.8.0_45/jre/lib/ext/access-bridge-64.jar Comparing with file:/D:/ProgramFilesFree/Java/jdk1.8.0_45/jre/lib/ext/cldrdata.jar Comparing with file:/D:/ProgramFilesFree/Java/jdk1.8.0_45/jre/lib/ext/dnsns.jar Comparing with file:/D:/ProgramFilesFree/Java/jdk1.8.0_45/jre/lib/ext/jaccess.jar Comparing with file:/D:/ProgramFilesFree/Java/jdk1.8.0_45/jre/lib/ext/jfxrt.jar Comparing with file:/D:/ProgramFilesFree/Java/jdk1.8.0_45/jre/lib/ext/localedata.jar Comparing with file:/D:/ProgramFilesFree/Java/jdk1.8.0_45/jre/lib/ext/meta-index IO Exception occurred