我有一个VB.NET
脚本,可以查找当前安装的java版本。
在java 8问世之前,一切都很顺利。
回到Java 7,我会这样做。
My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment", "Java7FamilyVersion", Nothing)
在Java 8(Java8FamilyVersion)中已经消失并已替换为(FullVersion)。 问题是FullVersion落后另外两个文件夹一个版本(18.0_25)然后另一个文件夹调用MSI
所以这就是问题;现在第一个文件夹被称为18.0_25,但将来它将改为18.0.55ish。
我无法经常更新我的软件,因此我想在getvalue中使用wilcard IE就是这样的
My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment\1.8.*\MSI", "FullVersion", Nothing)
上面没有用的是他们的任何工作吗?
答案 0 :(得分:0)
您可以从其中一个Java .dll文件中获取文件版本。对不起,我没有安装Java,但是这样的事情可能对你有帮助:
Dim fvi As FileVersionInfo = FileVersionInfo.GetVersionInfo("somefilename.dll")
Debug.Print(fvi.ProductVersion)
你可以摆弄major,minor等的返回属性。你应该能够构建一个版本字符串来获得你需要的东西。
答案 1 :(得分:0)
使用GetSubKeyNames
方法枚举" HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ JavaSoft \ Java Runtime Environment"的子项,然后按字母顺序选择最后一个(这样就不会掉落)对于任何旧1.7_
xx 键或1.8
键)