如何使用C#获取当前可用的Java版本?
我已经能够找到一种方式来使用C#获取我的电脑上的Java版本,但我需要能够将安装的版本与最新可用版本进行比较。目前我无法找到一个API或Web服务来获取这些信息。
希望这里有人知道答案。
如何使用C#获取当前可用的Java版本?
我已经能够找到一种方式来使用C#获取我的电脑上的Java版本,但我需要能够将安装的版本与最新可用版本进行比较。目前我无法找到一个API或Web服务来获取这些信息。
希望这里有人知道答案。
最新版本可用
您可以从此页面下载当前可用的版本:
http://java.com/en/download/index.jsp
使用此选择器。.jvc0w2 > strong:nth-child(3)
像C#的HTML Agility Pack这样的库可以使这变得简单明了。
当前安装的版本
RegistryKey rk = Registry.LocalMachine;
RegistryKey subKey = rk.OpenSubKey("SOFTWARE\\JavaSoft\\Java Runtime Environment");
string currentVerion = subKey.GetValue("CurrentVersion").ToString();
注意事项
您需要协调这两个字符串的格式以进行比较。
如果我引用的检查当前版本的网站发生更改,您可能需要更新您的选择器。
尝试:
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)感兴趣,请用java
代替javac
javac
与实际编译器绑定的级别。最好不要在编译器级别上这样做。 - Willem Van Onsem查找所有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版本使用的文件夹结构。
exec
是最实用的选项。 - chrylis -cautiouslyoptimistic-