sigar在Centos和Windows下使用java系統軟硬件配置信息
阿新 • • 發佈:2018-07-26
-c http key img use localhost per 64位 mas 授權
背景
本來這個網上一大堆實在沒什麽想寫的,但是好像大多數都是互相抄襲的,在centos根本上用不了,因此我整理下自己具體實現的步驟。
使用環境
sigar版本:hyperic-sigar-1.6.4
依賴的鏈接庫: libsigar-amd64-linux.so,sigar-amd64-winnt.dll
操作系統:
window10 64位,cetos7 64位
window
sigar-amd64-winnt.dll拷貝到java jdk的安裝路徑下的bin目錄
我這裏是
C:\Program Files\Java\jdk1.8.0_121\bin
Centos
libsigar-amd64-linux.so 拷貝到/usr/lib64/下面
sudo chmod 744 /usr/lib64/libsigar-amd64-linux.so
chmod a+x /usr/lib64/libsigar-amd64-linux.so
- 1
- 2
- 3
程序源碼
maven依賴
<dependency>
<groupId>org.fusesource</groupId>
<artifactId>sigar</artifactId>
<version>1.6.4</version>
</dependency>
java源碼
package apply;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;
import java.util.Properties;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.FileSystem;
import org.hyperic.sigar.FileSystemUsage;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.NetFlags;
import org.hyperic.sigar.NetInterfaceConfig;
import org.hyperic.sigar.NetInterfaceStat;
import org.hyperic.sigar.OperatingSystem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.Swap;
import org.hyperic.sigar.Who;
public class RuntimeTest {
public static void main(String[] args) {
try {
// System信息,從jvm獲取
property();
System.out.println("----------------------------------");
// cpu信息
cpu();
System.out.println("----------------------------------");
// 內存信息
//memory();
System.out.println("----------------------------------");
// 操作系統信息
// os();
System.out.println("----------------------------------");
// 用戶信息
// who();
System.out.println("----------------------------------");
// 文件系統信息
// file();
System.out.println("----------------------------------");
// 網絡信息
// net();
System.out.println("----------------------------------");
// 以太網信息
//ethernet();
System.out.println("----------------------------------");
} catch (Exception e1) {
e1.printStackTrace();
}
}
private static void property() throws UnknownHostException {
Runtime r = Runtime.getRuntime();
Properties props = System.getProperties();
InetAddress addr;
addr = InetAddress.getLocalHost();
String ip = addr.getHostAddress();
Map<String, String> map = System.getenv();
String userName = map.get("USERNAME");// 獲取用戶名
String computerName = map.get("COMPUTERNAME");// 獲取計算機名
String userDomain = map.get("USERDOMAIN");// 獲取計算機域名
System.out.println("用戶名: " + userName);
System.out.println("計算機名: " + computerName);
System.out.println("計算機域名: " + userDomain);
System.out.println("本地ip地址: " + ip);
System.out.println("本地主機名: " + addr.getHostName());
System.out.println("JVM可以使用的總內存: " + r.totalMemory());
System.out.println("JVM可以使用的剩余內存: " + r.freeMemory());
System.out.println("JVM可以使用的處理器個數: " + r.availableProcessors());
System.out.println("Java的運行環境版本: " + props.getProperty("java.version"));
System.out.println("Java的運行環境供應商: " + props.getProperty("java.vendor"));
System.out.println("Java供應商的URL: " + props.getProperty("java.vendor.url"));
System.out.println("Java的安裝路徑: " + props.getProperty("java.home"));
System.out.println("Java的虛擬機規範版本: " + props.getProperty("java.vm.specification.version"));
System.out.println("Java的虛擬機規範供應商: " + props.getProperty("java.vm.specification.vendor"));
System.out.println("Java的虛擬機規範名稱: " + props.getProperty("java.vm.specification.name"));
System.out.println("Java的虛擬機實現版本: " + props.getProperty("java.vm.version"));
System.out.println("Java的虛擬機實現供應商: " + props.getProperty("java.vm.vendor"));
System.out.println("Java的虛擬機實現名稱: " + props.getProperty("java.vm.name"));
System.out.println("Java運行時環境規範版本: " + props.getProperty("java.specification.version"));
System.out.println("Java運行時環境規範供應商: " + props.getProperty("java.specification.vender"));
System.out.println("Java運行時環境規範名稱: " + props.getProperty("java.specification.name"));
System.out.println("Java的類格式版本號: " + props.getProperty(