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 选项来禁用元数据发出。使用此选项编译的映像将无法被该工具检查。

延伸阅读 #

联系我们