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

有没有一种方法可以在Java中使用WMI类

庄嘉
2023-03-14
问题内容

嗨,我想使用WMI类来查找应用程序和产品信息。但是问题是我想使用Java或任何脚本语言(如python,javascript或perl)。我听说过JWMI,这可能是一个选择。有人可以帮我吗???


问题答案:

JavaScript和Java不是一回事。

JavaScript

Windows脚本宿主(WSH)下提供了JavaScript。有了它,访问WMI相当容易:

var loc = new ActiveXObject("WbemScripting.SWbemLocator");
var svc = loc.ConnectServer(".", "root\\cimv2");
coll = svc.ExecQuery("select * from Win32_Process");
var items = new Enumerator(coll);

while ( !items.atEnd() )
{
    WScript.Echo(items.item().Name);
    items.moveNext();
}

jWMI(Java)

jWMI是一个小型库,使Java能够进行常规WMI查询。似乎在这里可用

http://henryranch.net/software/jwmi-query-windows-wmi-from-
java/

它似乎也易于使用(尽管我不确定它的功能是否强大或完整):

String name = getWMIValue("Select Name from Win32_ComputerSystem", "Name");

WBEM(Java)

WMI是 基于Web的企业管理
(WBEM)的Microsoft实现。还有通用WBEM的Java实现,它将在某种程度上与WMI兼容。

这可能是您将找到的最完整的真正Java实现。如果您的需求超出了微小的脚本编写(例如实现WBEM / WMI提供程序),那么您可能需要研究此选项。



 类似资料:
  • 问题内容: 我有Visio2007,我真的很喜欢。但是,它似乎没有Java的UML模型/数据类型。我可以为Java下载一些模板吗?还是我应该完全忘记Visio并获得一个Elipse插件? 谢谢! 问题答案: 后者是更好的选择,恕我直言。此外,我认为UML模型不应该特定于Java。我不知道周围是否有特定于Java的UML。 我在网上搜索时发现了这个。UML模型:MS Visio 2007。

  • 问题内容: 假设我有以下代码: 这段代码的问题在于,协程内部的循环永远不会完成第一次迭代,而大小会不断增加。 为什么会这样发生,我该怎么解决? 我无法摆脱单独的线程,因为在我的真实代码中,我使用了单独的线程与串行设备进行通信,而且我还没有找到使用的方法。 问题答案: 不是线程安全的,因此您不能直接在多个线程中直接使用它。相反,您可以使用,它是提供线程感知队列的第三方库: 还有(全披露:我写了它),

  • 问题内容: 我只想在编译时在Java类中使用maven占位符,以减少重复。 像这样: pom.xml SomeVersion.java 问题答案: 只需在src / main / resources中创建具有以下内容的文件app.properties 然后像这样启用Maven过滤 就是这样-在应用程序代码中只需读取属性文件 并提供这样的方法

  • 问题内容: doIt函数将打印“ dad”。有没有办法让它打印“儿子”? 问题答案: 是。但是就变量而言,它会被覆盖(将新值赋予变量。将新定义赋予函数是Override)。 在父类的块中使用时,该值将得到反映 如果变量是静态的,则在初始化时使用静态块更改其值, 否则更改构造函数。 你还可以稍后在任何块中更改该值。它将反映在超一流

  • 我只需要一个标题,味精和按钮警报对话框,但显示为底部工作表。 哪里有一种方法可以获得这个(没有自定义视图)?

  • 我们可以使用这些jvm标志来确定编译阈值,但是有没有一种方法可以在运行时以编程方式确定它?