如何使用c#获取当前的Java版本?
我已经能够找到一种方法来使用C#在我的PC上获取java版本,但我需要能够将已安装的版本与最新版本进行比较。目前,我无法找到API或Web服务来获取此信息。
希望有人知道答案。
答案 0 :(得分: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();
<强>注意事项强>
您需要协调这两个字符串的格式以进行比较。
如果我引用的网站检查当前版本的更改,您可能需要更新选择器。
答案 1 :(得分:2)
尝试:
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)感兴趣,请将javac
替换为java
答案 2 :(得分: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版本使用的文件夹结构。