What is JWbem?

JWbem is a Java library that makes it embarrassingly easy for developers to access remote (or local) Microsoft Windows systems using standard Microsoft Windows Management Instrumentation (WMI) calls.

What does JWbem stand for?

JWbem stands for "Java Web-Based Enterpise Management," a play on Microsoft's SWbem (Scripting Web-Based Enterprise Management."

I wanted to call JWbem "JMI" originally (as an obvious play on WMI, where the J stands for Java), but JMI was already reserved as an acronym on SourceForge. And since JWbem's core object model mimics SWbem's anyway, JWbem is technically more appropriate. Still, I really wanted to say I was working on Jimmy :)

What is SWbem?

"Wait a minute! I thought you said JWbem enables WMI in Java, what is this SWbem thing?"

SWbem is Microsoft's scripting access layer for WMI and is actually what is exposed via WMI's D-COM server for scripting processes such as VBScript. Since JWbem communicates with this server, it mimics the SWbem object model that is provided. You use this model to issue WMI calls. This may sound complicated, but it is actually incredibly easy. Please see the Getting Started page to have any concerns assuaged.

How is JWbem different than j-Interop?

That is a great question! JWbem is in fact built on top of j-Interop. However, j-Interop is a Java library for communicating with any D-COM server. Although it may not be apparent, WMI is just another D-COM server running on a Windows system, and so therefore you can use j-Interop to issue WMI commands. And while there may be several examples of getting j-Interop to work with WMI, j-Interop is built to function on a much lower level than WMI, and is not WMI specific. JWbem on the other hand is taylored to mimic Microsoft's WMI and SWbem namespaces.


How do I install JWbem?

You configure your Maven's POM file to pull in the JWbem artifacts. More information on JWbem's artifacts can be found on the Download and Getting Started pages.