使用.NET 5的 C# 编写了个jdk部署工具
- 自动用aria2下载jdk16
- 检查下载文件完整性(sha-256)
- 支持java环境变量配置
项目类
- 环境变量管理类
- http辅助类
- aria2辅助类
- Json请求格式类
- Zip文件辅助类
- 完整性检测辅助类
原理
本项目采用 C# 采用rpc控制 aria2 下载jdk16,经检测解压后配置环境变量
rpc实际控制方法为向 aria2 发起 post 请求,然后 aria2 接收回复
流程
- 构造请求调用的json数据
- 使用aria2辅助类启动
aria2主程序 - 发起下载请求
- 每
500ms检查一次aria2返回的状态,如果下载结束继续进行,否则持续检查 - 下载完成检查文件
SHA256与给出的是否一致,不一致给出提示退出 - 使用zip辅助类解压jdk的压缩包
- 通过环境变量管理类设置环境变量
难点
- 此程序与aria2两进程间通信(rpc)
- http POST方法的C#实现
- SHA-256算法
- 注册表的可扩充字符串值自动填充环境问题