From 306a7bb30986a65d4e179ae7c71cfaf6f91c6801 Mon Sep 17 00:00:00 2001 From: zs-yg <3972006562@qq.com> Date: Sat, 22 Nov 2025 19:51:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9F=A5=E7=9C=8Bjre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Program.cs | 9 ++++++- Tools/viewjre/JreViewer.cs | 48 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 Tools/viewjre/JreViewer.cs diff --git a/Program.cs b/Program.cs index 4f0cec3..dbad13f 100644 --- a/Program.cs +++ b/Program.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using MCSJ.Tools; using MCSJ.Tools.LogSystem; using MCSJ.Tools.JreDownload; +using MCSJ.Tools.ViewJre; namespace MCSJ { @@ -22,6 +23,7 @@ namespace MCSJ }; var versionManager = new VersionManager(); var downloadService = new DownloadService(versionManager); + var jreViewer = new JreViewer(); LogMain.Debug("服务初始化完成"); while (true) @@ -30,7 +32,8 @@ namespace MCSJ Console.WriteLine("1. 显示所有版本"); Console.WriteLine("2. 下载指定版本"); Console.WriteLine("3. 下载JRE"); - Console.WriteLine("4. 退出"); + Console.WriteLine("4. 查看已安装的JRE"); + Console.WriteLine("5. 退出"); Console.Write("请选择操作: "); var input = Console.ReadLine(); @@ -63,6 +66,10 @@ namespace MCSJ LogMain.Info($"JRE下载完成: {jreVersion}"); break; case "4": + jreViewer.DisplayInstalledJres(); + LogMain.Info("显示已安装的JRE列表"); + break; + case "5": LogMain.Info("程序正常退出"); return; default: diff --git a/Tools/viewjre/JreViewer.cs b/Tools/viewjre/JreViewer.cs new file mode 100644 index 0000000..13bcb64 --- /dev/null +++ b/Tools/viewjre/JreViewer.cs @@ -0,0 +1,48 @@ +using System; +using System.IO; +using System.Linq; + +namespace MCSJ.Tools.ViewJre +{ + public class JreViewer + { + private const string SetupFolder = "setup"; + private const string JreTomlFile = "jre.toml"; + + public void DisplayInstalledJres() + { + var tomlPath = Path.Combine(SetupFolder, JreTomlFile); + + if (!File.Exists(tomlPath)) + { + Console.WriteLine("没有安装任何JRE"); + return; + } + + try + { + var content = File.ReadAllText(tomlPath); + var versions = content.Split('\n') + .Where(line => line.StartsWith("[jre.")) + .Select(line => line.Split('.')[1].Split(']')[0].Trim()) // 精确提取版本号 + .ToList(); + + if (versions.Count == 0) + { + Console.WriteLine("没有安装任何JRE"); + return; + } + + Console.WriteLine("已安装的JRE版本:"); + foreach (var version in versions) + { + Console.WriteLine(version); // 直接输出版本号,不带前缀 + } + } + catch (Exception ex) + { + Console.WriteLine($"读取JRE列表失败: {ex.Message}"); + } + } + } +}