3

如何使用 c# 获取当前可用的 Java 版本?

我已经能够找到一种使用 C# 在我的 PC 上获取 java 版本的方法,但我需要能够将已安装的版本与可用的最新版本进行比较。目前我无法找到 API 或 Web 服务来获取此信息。

希望这里有人知道这个问题的答案。

4

3 回答 3

7

最新版本可用

您可以从此页面拉取可供下载的当前版本:

http://java.com/en/download/index.jsp

使用这个选择器

.jvc0w2 > strong:nth-child(3)

HTML Agility Pack for C#这样的库使这变得简单。

当前安装的版本

RegistryKey rk = Registry.LocalMachine;
RegistryKey subKey = rk.OpenSubKey("SOFTWARE\\JavaSoft\\Java Runtime Environment");

string currentVerion = subKey.GetValue("CurrentVersion").ToString();

注意事项

您需要协调这两个字符串的格式以进行比较。

如果我用来检查当前版本的网站发生了变化,您可能需要更新您的选择器。

于 2013-09-11T21:11:52.927 回答
3

尝试:

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "javac";
psi.UseShellExecute = true;
psi.RedirectStandardError = true;

psi.Arguments = "-version";
Process p = Process.Start(psi);
string strOutput = p.StandardError.ReadToEnd();
p.WaitForExit();

然后你应该解析输出字符串。此输出通常如下所示:

javac 1.6.0_27

如果您对运行时环境 (RE) 感兴趣,请替换javacjava

于 2013-09-11T20:58:37.393 回答
1

找到所有 java.exe 文件并将它们作为“java -version”运行。输出看起来像这样:

java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) Client VM (build 20.10-b01, mixed mode, sharing)

所以你可以告诉版本。

您还应该查找已安装的 java 版本使用的文件夹结构。

于 2013-09-11T20:59:11.770 回答