diff --git a/Program.cs b/Program.cs index e4a4928..4f0cec3 100644 --- a/Program.cs +++ b/Program.cs @@ -50,7 +50,7 @@ namespace MCSJ LogMain.Info($"版本下载完成: {version}"); break; case "3": - Console.Write("请输入要下载的JRE版本(如jre8,jre11等): "); + Console.Write("请输入要下载的JRE版本(jre8,jre11,jre17/21/25): "); var jreVersion = Console.ReadLine(); if (string.IsNullOrWhiteSpace(jreVersion)) { diff --git a/Tools/jredownload/JreDownloadService.cs b/Tools/jredownload/JreDownloadService.cs index fec5554..92a5a40 100644 --- a/Tools/jredownload/JreDownloadService.cs +++ b/Tools/jredownload/JreDownloadService.cs @@ -21,6 +21,13 @@ namespace MCSJ.Tools.JreDownload public async Task DownloadAndSetupJre(string version) { + // 0. 检查是否已存在该版本 + if (CheckJreExists(version)) + { + Console.WriteLine($"JRE {version} 已存在,无需重复下载"); + return; + } + // 1. 读取jrelist.txt获取下载链接 var downloadUrl = GetDownloadUrl(version); if (string.IsNullOrEmpty(downloadUrl)) @@ -165,6 +172,23 @@ namespace MCSJ.Tools.JreDownload return Directory.GetFiles(folder, exeName, SearchOption.AllDirectories).FirstOrDefault(); } + private bool CheckJreExists(string version) + { + var tomlPath = Path.Combine(SetupFolder, "jre.toml"); + if (!File.Exists(tomlPath)) + return false; + + try + { + var content = File.ReadAllText(tomlPath); + return content.Contains($"[jre.{version}]"); + } + catch + { + return false; + } + } + private void CreateJreToml(string version, string javaExePath, string javawExePath) { if (!Directory.Exists(SetupFolder))