- 适用于 JDK 24 的 GraalVM(最新)
- 适用于 JDK 25 的 GraalVM(早期访问)
- 适用于 JDK 21 的 GraalVM
- 适用于 JDK 17 的 GraalVM
- 存档
- 开发构建
Native Image 检查工具
Native Image 检查工具可从原生可执行文件中提取嵌入式软件物料清单 (SBOM)。提取类级别元数据的功能现已弃用。
提取嵌入式 SBOM #
Native Image 可以在构建时嵌入 SBOM,以检测可能容易受到已知安全漏洞影响的任何库。Native Image 提供了 --enable-sbom
选项,用于将 SBOM 嵌入到原生可执行文件中(仅在 Oracle GraalVM 中可用)。
Native Image 检查工具可以使用可选的 --sbom
参数提取压缩的 SBOM,如以下命令所示:$JAVA_HOME/bin/native-image-inspect --sbom <path_to_binary>
。
提取类级别元数据(已弃用) #
使用
native-image-inspect
提取类级别元数据的功能已弃用。在 GraalVM for JDK 24 中,会向stderr
输出弃用警告,此功能将在 GraalVM for JDK 25 中移除。请改用 类级别 SBOM,方法是向native-image
构建器传递--enable-sbom=class-level,export
,这将生成包含相同类级别元数据信息的 SBOM。
Native Image 提供了检查工具,用于列出原生可执行文件或原生共享库中包含的所有类、字段和方法。运行命令 $JAVA_HOME/bin/native-image-inspect <path_to_binary>
可列出 JSON 格式的类、方法、字段和构造函数,该格式根据 native-image-inspect-schema-v0.2.0.json
中定义的 JSON 架构进行验证(仅在 Oracle GraalVM 中可用)。
默认情况下,native-image
构建器会将元数据包含在原生可执行文件中,从而使检查工具能够列出所包含的方法。
与原生可执行文件的总大小相比,所包含的数据量相当小,但是您可以设置 -H:-IncludeMethodData
选项来禁用元数据发出。使用此选项编译的映像将无法被该工具检查。