build-db

star 139

使用 jar-analyzer-engine 从 JAR/WAR/Class 文件构建 SQLite 分析数据库。这是进行 Java 代码安全审计、方法调用分析的第一步。

jar-analyzer By jar-analyzer schedule Updated 3/20/2026

name: build-db description: 使用 jar-analyzer-engine 从 JAR/WAR/Class 文件构建 SQLite 分析数据库。这是进行 Java 代码安全审计、方法调用分析的第一步。

build-db — 构建 Jar Analyzer 分析数据库

概述

使用内置的 jar-analyzer-engine-1.2.0.jar 对目标 JAR/WAR/Class 文件进行静态分析, 生成 SQLite 数据库(jar-analyzer.db)。该数据库包含类信息、方法定义、方法调用关系、 继承关系、字符串常量、Spring 组件信息等,是后续所有分析操作的数据基础。

引擎位置

<plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar

<plugin_dir> 是本插件的安装目录(即包含 bin/skills/ 的目录)。 运行前请确认 Java 8+ 已安装且在 PATH 中。

命令参考

java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar [options]

必选参数

参数 说明
--jar <path>, -j <path> 目标 JAR/WAR 文件或包含 class 文件的目录路径(必需

可选参数

参数 说明 默认值
--quick, -q 快速模式:仅分析方法调用关系,跳过继承/字符串/Spring 分析 false
--inner-jars 解析 JAR 内嵌套的 JAR(如 Spring Boot FatJar) false
--fix-class 使用 FixClassVisitor 修复类名 false
--no-fix-impl 禁用自动方法实现修复(不推荐) false
--rt <path> 指定 rt.jar 路径(用于 JDK 类分析)
--white-list <text>, -w <text> 类/包白名单(仅分析匹配的类),支持文本或文件路径
--white-list-file <path> 白名单文件路径
--black-list <text>, -b <text> 类/包黑名单(排除匹配的类),支持文本或文件路径
--black-list-file <path> 黑名单文件路径
--log-level <level> 日志级别:DEBUG, INFO, WARN, ERROR INFO
--decompile <class>, -d <class> 反编译模式:反编译指定类并输出源码(不构建数据库)
--help, -h 显示帮助信息

黑白名单说明

  • 使用 / 分隔的包名格式(如 com/example/app
  • 白名单:分析匹配的包/类
  • 黑名单:排除匹配的包/类
  • 支持直接传入文本,或指定一个文件路径(每行一个包名/类名)
  • 黑白名单不能同时使用

输出

产出 路径 说明
SQLite 数据库 jar-analyzer.db(当前工作目录) 包含全部分析结果
临时目录 jar-analyzer-temp/(当前工作目录) 解压的 class 文件,分析完成后可清理

数据库包含的信息

数据类型 说明
类信息 类名、父类、接口、注解、访问修饰符
方法信息 方法名、描述符、注解、访问修饰符
成员变量 字段名、类型、访问修饰符
方法调用关系 调用者 → 被调用者的完整映射
继承/实现关系 类继承链、接口实现关系
方法实现 接口方法 → 实现方法的映射
字符串常量 LDC 指令加载的字符串及其所在方法
注解字符串 注解中的字符串值
Spring 组件 Controller、Mapping、参数信息(如适用)
Class 文件 原始 class 文件的二进制数据

标准操作流程(SOP)

1. 确认环境

java -version
# 确保 Java 8+ 可用

2. 确认目标文件

向用户确认待分析的 JAR/WAR 文件路径或目录路径。

3. 选择分析模式

根据场景选择合适的参数组合:

完整分析(推荐,适合安全审计):

java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path>

快速分析(仅方法调用关系,速度更快):

java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> -q

FatJar 分析(Spring Boot 等嵌套 JAR):

java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> --inner-jars

指定范围分析(仅分析特定包):

java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> -w "com/example/app"

排除第三方库

java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> -b "org/apache"

4. 执行构建

运行命令并观察输出,关注以下关键信息:

  • totalJar: 发现的 JAR 文件数量
  • totalClass: 分析的类数量
  • totalMethod: 分析的方法数量
  • dbSize: 生成的数据库大小
  • Progress: 100%: 构建完成
  • Time elapsed: 构建耗时

5. 验证结果

确认 jar-analyzer.db 已生成,并告知用户:

  • 数据库路径
  • 分析的类/方法数量
  • 数据库大小
  • 可以使用 do-analyze skill 进行后续分析

6. 反编译模式(可选)

如果用户只需要快速查看某个类的源码,可以使用反编译模式:

java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> -d <fully.qualified.ClassName>

例如:

java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j app.jar -d com.example.MyController

注意:反编译模式不会构建数据库,仅输出反编译后的 Java 源码到控制台。

注意事项

  • 当 JAR 数量较多或体积较大时,数据库文件和临时目录可能非常大,请确保磁盘有足够空间
  • 构建过程中会在当前目录创建 jar-analyzer-temp/ 临时目录
  • 如果数据库已存在,重新运行会覆盖旧数据库
  • 建议在目标项目目录或专门的分析目录下执行命令
  • Windows 环境下路径使用 \/ 均可
Install via CLI
npx skills add https://github.com/jar-analyzer/jar-analyzer-claude --skill build-db
Repository Details
star Stars 139
call_split Forks 8
navigation Branch main
article Path SKILL.md
More from Creator
jar-analyzer
jar-analyzer Explore all skills →