# search-jar **Repository Path**: huanminabc/search-jar ## Basic Information - **Project Name**: search-jar - **Description**: 自研: java反编译-搜索, 比IDEA更加牛逼的搜索 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-12 - **Last Updated**: 2023-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用说明 ## 命令模式 java -Config_f="PATH" -jar xxx.jar java -Config_s="{xxxx}" -jar xxx.jar java -DConfig_f="F:\java-project\search-jar\src\main\resources\config.json" -jar xxx.jar ```json { "id": "1", "project-path": "D:\\java-project\\search-jar", "index": { "activate": false, "refresh": false, "jar": true, "jar-source": true, "java-file": true, "java-class": true, "pom": true, "maven-library": "E:\\Maven\\kucun" }, "search": { "activate": true, "search-key": "search-key", "search-path": "search-path", "search-limit": "100" } } ``` id: 项目唯一标识,用于区分不同项目 project-path: 是需要操作的地址 - index: 是加载索引 - activate: 是使用开关 - refresh: 如果是true覆盖旧索引 - Java-file: 是索引项目下所有java文件 - Jar-source: 是索引源码jar包内的所有java文件 - pom: 是索引项目下pom文件内dependency的jar包 ,开启了这个选项,那么就必须配置maven-library - maven-library: 是项目当前使用的maven本地仓库地址,这个可以在settings.xml中查看 - Jar: 是索引jar包内的所有class - search: 是搜索 - activate: 是使用开关 - search-key: 搜索关键字 - search-path: 搜索结果存储地址 - search-limit: 搜索结果限制条数 ## 提示 ### 日志说明 - 运行后会在程序当前目录下生成日志夹log,里面有各种日信息 - 日志中报错`NoClassDefFoundError | VerifyError | IncompatibleClassChangeError | UnsupportedClassVersionError` - 这些都是依赖没有导入或者jar版本不兼容导致的,需要自己去排查,但是一般出现这种问题,表示项目本身就没有使用到这个类,否则项目就启动不起来,所以不影响使用 ### 搜索说明 > 只有index构建了的索引,那么在search搜索里才能搜索到,未构建索引的无法被搜索到 > 搜索顺序: 项目下的java文件 > jar源码索引 > pom索引>jar索引 > jar(二进制)和jar(源码)的区别: **jar(二进制)**:只会扫描xxx.jar包中的class文件,也就是xxx.class文件,本质是扫描class文件中的字节码信息然后解析到jvm中,之后通过类加载器反射获取类信息 **jar(源码)**:会扫描xxxx-sources.jar包中源码文件,也就是xxx.java文件,本质是文本内容搜索 ## 支持说明 1. 支持搜索二进制jar包内的class名,方法名,字段名,注解内容 2. 支持搜索源码jar包内的java文件内的内容 3. 支持搜索路径下的所有java文件内的内容 4. 支持搜索路径下的所有class文件的class名,方法名,字段名,注解内容 5. 支持搜索pom.xml文件内dependency的jar包,兼容父子模块和多模块模式