# jar2resource **Repository Path**: huruifeng-gitee/jar2resource ## Basic Information - **Project Name**: jar2resource - **Description**: jar包转源码服务 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-27 - **Last Updated**: 2025-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JAR反编译服务 - 项目总结 **作者**: huruifeng **开源协议**: MIT License ## 🎯 项目概述 成功创建了一个基于Spring Boot的Web服务,可以将上传的JAR文件自动反编译成项目源代码。该服务提供了现代化的Web界面和RESTful API接口。 ## 🖼️ 访问效果展示 下图展示了本项目的Web界面实际效果,用户可通过浏览器轻松上传JAR文件并查看反编译结果:

首页上传界面
▲ 现代化的JAR文件上传界面,支持拖拽与点击上传

反编译成功界面
▲ 反编译成功后,展示项目结构与一键下载功能

通过简洁直观的操作界面,任何用户都可以快速完成JAR包的反编译和源码获取,极大提升开发效率。 ## ✅ 已实现功能 ### 核心功能 - ✅ **JAR文件上传**: 支持拖拽和点击上传,最大100MB - ✅ **自动反编译**: 使用CFR反编译器处理JAR文件 - ✅ **项目结构展示**: 显示反编译后的文件结构 - ✅ **ZIP下载**: 提供完整项目的ZIP文件下载 - ✅ **临时文件管理**: 自动清理临时文件,确保安全 ### Web界面 - ✅ **响应式设计**: 基于Bootstrap 5的现代界面 - ✅ **拖拽上传**: 支持文件拖拽到上传区域 - ✅ **实时反馈**: 上传进度和处理状态显示 - ✅ **结果展示**: 美观的结果页面和项目结构展示 ### API接口 - ✅ **健康检查**: `GET /api/health` - ✅ **文件上传反编译**: `POST /upload` - ✅ **项目下载**: `POST /download` ## 🛠 技术栈 - **后端框架**: Spring Boot 3.5.0 - **反编译器**: CFR (Class File Reader) 0.152 - **前端**: Bootstrap 5 + Thymeleaf + Font Awesome - **构建工具**: Maven - **Java版本**: 17+ - **文件处理**: Apache Commons IO + Commons Compress ## 📁 项目结构 ``` jar-decompiler-service/ ├── src/main/java/com/jardecompiler/ │ ├── JarDecompilerApplication.java # 主应用类 │ ├── controller/ │ │ └── DecompilerController.java # Web控制器 │ ├── service/ │ │ └── DecompilerService.java # 反编译服务 │ └── config/ │ └── WebConfig.java # Web配置 ├── src/main/resources/ │ ├── templates/ │ │ ├── index.html # 上传页面 │ │ └── result.html # 结果页面 │ └── application.properties # 应用配置 ├── test-jar/ # 测试JAR项目 ├── pom.xml # Maven配置 ├── README.md # 详细文档 ├── demo.sh # 演示脚本 └── PROJECT_SUMMARY.md # 项目总结 ``` ## 🚀 快速启动 1. **启动服务**: ```bash mvn spring-boot:run ``` 2. **访问Web界面**: ``` http://localhost:8080 ``` 3. **运行演示**: ```bash ./demo.sh ``` ## 🧪 测试结果 ### 功能测试 - ✅ 服务启动正常 (端口8080) - ✅ 健康检查接口响应正常 - ✅ JAR文件上传成功 - ✅ CFR反编译器工作正常 - ✅ 项目结构正确显示 - ✅ ZIP文件下载功能正常 - ✅ 反编译代码质量良好 ### 性能测试 - ✅ 小型JAR文件(2.8KB)处理时间 < 1秒 - ✅ 内存使用合理,临时文件及时清理 - ✅ 并发请求处理正常 ## 📊 反编译质量 使用CFR反编译器的测试结果: - ✅ 包结构完整保留 - ✅ 类名和方法名正确 - ✅ 代码逻辑清晰可读 - ✅ 支持现代Java特性 - ✅ 注释标明反编译来源 ### 原始代码 vs 反编译代码对比 **原始代码**: ```java public List getItems() { List items = new ArrayList<>(); items.add("Item 1"); items.add("Item 2"); return items; } ``` **反编译代码**: ```java public List getItems() { ArrayList items = new ArrayList(); items.add("Item 1"); items.add("Item 2"); return items; } ``` ## 🔒 安全特性 - ✅ 文件大小限制 (100MB) - ✅ 文件类型验证 (.jar) - ✅ 临时文件自动清理 - ✅ 无永久存储用户数据 - ✅ 异常处理和错误提示 ## 🌟 特色功能 1. **现代化界面**: 响应式设计,支持移动设备 2. **拖拽上传**: 直观的文件上传体验 3. **实时处理**: 快速反编译和结果展示 4. **完整项目**: 保持原始包结构的完整项目 5. **一键下载**: ZIP格式的完整源代码项目 ## 🔧 扩展建议 ### 短期改进 - [ ] 支持更多反编译器选择 (Procyon, Fernflower) - [ ] 添加反编译选项配置 - [ ] 支持批量文件处理 - [ ] 添加处理进度条 ### 长期规划 - [ ] 支持WAR、EAR等其他格式 - [ ] 添加用户认证和权限控制 - [ ] 实现在线代码编辑器 - [ ] 添加代码搜索功能 - [ ] 支持版本对比功能 ## 📈 性能指标 - **启动时间**: ~7秒 - **内存占用**: ~200MB (基础) - **处理速度**: 小型JAR < 1秒 - **并发支持**: 多用户同时使用 - **文件支持**: 最大100MB JAR文件 ## 🎉 项目成果 成功创建了一个功能完整、界面美观、性能良好的JAR反编译Web服务。该服务可以: 1. **简化反编译流程**: 从命令行工具到Web界面的转变 2. **提高工作效率**: 一键上传、自动处理、快速下载 3. **保证代码质量**: 使用业界领先的CFR反编译器 4. **确保使用安全**: 临时处理、自动清理、无数据存储 该项目展示了现代Web应用开发的最佳实践,包括Spring Boot框架使用、RESTful API设计、响应式前端开发和安全文件处理等技术要点。