在Windows中使用Java查找特定的注册表项

我可以在Windows中转到regedit,然后转到edit->

find,然后键入要在计算机中找到的密钥(在我的情况下为Maxima),然后找到所需的密钥(为最大值)(在我的情况下为“

HKEY_LOCAL_MACHINE” \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \

CurrentVersion \ Uninstall \

Maxima-5.17.1_is1“),但是我需要在Java中动态执行此操作,并找到已安装的maxima的当前版本及其在Windows中的目录位置。我不知道该如何进行。

我尝试使用这里所述的方法:使用Java读取/写入Windows注册表,但是要使用这些方法,我需要知道密钥。如何在Java中动态找到密钥?还是有其他方法可以使用Java在Windows中查找软件的版本和目录位置?

回答:

我将使用此类来回答您。因为它是用纯Java代码编写的。

  1. 有一个WinRegistry从类在这里。
  2. 获取父键中所有键的列表。
  3. 筛选器列表以获取最合适的键(或精确键)。
  4. 然后,您可以在此键中检查所需的值。

这是可以帮助您的代码:

List<String> ls = WinRegistry.readStringSubKeys(WinRegistry.HKEY_LOCAL_MACHINE,

"SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\");

String key = ls.stream().filter(st -> st.matches("Maxima.*")).findAny().get();

现在这个key值将是Maxima-5.17.1_is1(如果存在,否则java.util.NoSuchElementException将被抛出)。您可以使用它来获取任何

以上是 在Windows中使用Java查找特定的注册表项 的全部内容, 来源链接: utcz.com/qa/402134.html

回到顶部