Get Operating System Information in Java using OSHI library
Introduction
In this tutorial, we show you how to use OSHI library in a Java program to get operating system information. By different example Java programs we learn how to get information of operating system name, version, manufacturer, etc.
What is OSHI?
OSHI is a free JNA-based (native) Operating System and Hardware Information library for Java. It does not require the installation of any additional native libraries and aims to provide a cross-platform implementation to retrieve system information, such as OS version, processes, memory and CPU usage, disks and partitions, devices, sensors, etc.
For more information about the OSHI library you can visit the library repository at github.com/oshi/oshi
Add OSHI library to the Java project
To use OSHI Java library in the Gradle build project, add the following dependency into the build.gradle file.
compile group: 'com.github.oshi', name: 'oshi-core', version: '5.3.4'
To use OSHI Java library in the Maven build project, add the following dependency into the pom.xml file.
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>5.3.4</version>
</dependency>
How to use OSHI to get Operating System Information
To use the OSHI library we need to instantiate a SystemInfo object as this is the main entry point to the OSHI library.
SystemInfo systemInfo = new SystemInfo();
Then get the object of OperatingSystem to retrieve operating system information that your Java program is running on.
OperatingSystem operatingSystem = systemInfo.getOperatingSystem();
Example 1 Get Operating System Information
import oshi.SystemInfo;
import oshi.software.os.OperatingSystem;
public class GetOsInfoExample1 {
public static void main(String... args) {
SystemInfo systemInfo = new SystemInfo();
OperatingSystem operatingSystem = systemInfo.getOperatingSystem();
System.out.println("Operating System: " + operatingSystem.toString());
}
}
Operating System: Microsoft Windows 10.0 (Home) build 19042
Example 2 Get Details of Operating System
import oshi.SystemInfo;
import oshi.software.os.OperatingSystem;
public class GetOsInfoExample2 {
public static void main(String... args) {
SystemInfo systemInfo = new SystemInfo();
OperatingSystem operatingSystem = systemInfo.getOperatingSystem();
System.out.println("Family: " + operatingSystem.getFamily());
System.out.println("Manufacturer: " + operatingSystem.getManufacturer());
System.out.println("Number of bits supported by the OS (32 or 64): " + operatingSystem.getBitness());
}
}
Family: Windows
Manufacturer: Microsoft
Number of bits supported by the OS (32 or 64): 64
Example 3 Get Details of Operating System Version
import oshi.SystemInfo;
import oshi.software.os.OperatingSystem;
public class GetOsInfoExample3 {
public static void main(String... args) {
SystemInfo systemInfo = new SystemInfo();
OperatingSystem operatingSystem = systemInfo.getOperatingSystem();
OperatingSystem.OSVersionInfo versionInfo = operatingSystem.getVersionInfo();
System.out.println("Version: " + versionInfo.getVersion());
System.out.println("CodeName: " + versionInfo.getCodeName());
System.out.println("Build Number: " + versionInfo.getBuildNumber());
}
}
Version: 10.0
CodeName: Home
Build Number: 19042
Happy Coding 😊
Related Articles
Get CPU Information in Java using OSHI library
Get Physical Memory or RAM Information in Java using OSHI library