当前位置: 首页 > 面试题库 >

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

曹经业
2023-03-14
问题内容

我可以在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将被抛出)。您可以使用它来获取任何



 类似资料:
  • 问题内容: 使用Java读/写Windows注册表 问题答案: 我知道这个问题很旧,但这是Google上第一个”java read/write to registry”的搜索结果。最近,我发现了这段惊人的代码: 可以读/写注册表的任何部分。 不使用JNI。 请勿使用任何第三方/外部应用程序进行工作。 不直接使用WINDOWS API 这是纯Java代码。 通过实际访问类中的私有方法,它使用反射来工

  • 问题内容: 使用Java读/写Windows注册表? 问题答案: Java Native Access(JNA)是用于处理本机库的出色项目,并且通过Advapi32Util和Advapi32支持平台库(platform.jar)中的Windows注册表。

  • 问题内容: 这是一个示例代码: 因此,这个位于productOrderContainer中的表有几列,根据几件事,将有几行,每行都有几列。一个例子是: 我想做的是例如获取此表的第一行。(行具有ID ,例如:),然后再次在该行跨度中寻找特定值 所以在伪代码中我想说的是: 给我桌子,给我第n行,给我值 问题答案: 您可以尝试关注 您还可以遍历表行以执行所需的任何功能。

  • 本文向大家介绍使用Python的Windows注册表访问(Winreg),包括了使用Python的Windows注册表访问(Winreg)的使用技巧和注意事项,需要的朋友参考一下 作为一种通用的语言,以及大量用户支持的模块的可用性,我们发现python在操作系统级别的编程方面也很擅长。在本文中,我们将看到python如何访问Windows操作系统的注册表。 我们需要将名为winreg的模块导入py

  • 在进行jOOQ不可知(无代码生成)迁移时,我遇到了一种情况,需要检查数据库中是否存在约束(唯一的外键),以便完成进一步的操作。 到目前为止,我尝试的是运行drop并尝试捕获异常,但它使事务失败,并停止后续迁移 设置: Spring jOOQ无需代码生成 FlywayDB作为迁移库 Postgres

  • 本文向大家介绍如何在C#中使用注册表,包括了如何在C#中使用注册表的使用技巧和注意事项,需要的朋友参考一下 一、什么是注册表         注册表是Microsoft Windows操作系统和其应用程序中的一个重要的层次型数据库,用于存储系统和应用程序的设置信息。由键(key,或称“项”)、子键(subkey,子项)和值项(value)构成。一个键就是树状数据结构中的一个节点,而子键就是这个节点