java获取操作系统
‘壹’ java获取系统的内存总量和已使用量,各程序的cpu使用百分比以及总量
使用sigar来监控,简单方便!
使用说明:以下代码需要配合sigar的dll文件来用,需要将dll文件放到JDK下的bin文件夹下,供sigar程序调用,还需要sigarjar包。以下程序经过测试,完全可用!
有关jar包跟dll文件我上传不了,私信我,我发你importjava.net.InetAddress;
importjava.net.UnknownHostException;
importjava.util.Map;
importjava.util.Properties;
importjava.util.Timer;
importjava.util.TimerTask;
importorg.hyperic.sigar.CpuInfo;
importorg.hyperic.sigar.CpuPerc;
importorg.hyperic.sigar.FileSystem;
importorg.hyperic.sigar.FileSystemUsage;
importorg.hyperic.sigar.Mem;
importorg.hyperic.sigar.NetFlags;
importorg.hyperic.sigar.NetInterfaceConfig;
importorg.hyperic.sigar.NetInterfaceStat;
importorg.hyperic.sigar.OperatingSystem;
importorg.hyperic.sigar.Sigar;
importorg.hyperic.sigar.SigarException;
importorg.hyperic.sigar.Swap;
importorg.hyperic.sigar.Who;
publicclassRuntimeTest{
publicstaticvoidmain(String[]args){
try{
Timertimer=newTimer();//定时器
TimerTasktask=newTimerTask(){
publicvoidrun(){
try{
memory();
}catch(SigarExceptione){
e.printStackTrace();
}
}
};
try{
timer.schele(task,0,3000);//每3秒取一次
}catch(Exceptionex){
ex.printStackTrace();
}
//System信息,从jvm获取
//property();//根据自己的需求,都可以放到定时器中定时获取
//cpu信息
//cpu();
//内存信息
//memory();
//操作系统信息
//os();
//用户信息
//who();}catch(Exceptione1){
e1.printStackTrace();
}
}
privatestaticvoidproperty()throwsUnknownHostException{
Runtimer=Runtime.getRuntime();
Propertiesprops=System.getProperties();
InetAddressaddr;
addr=InetAddress.getLocalHost();
Stringip=addr.getHostAddress();
Map<String,String>map=System.getenv();
StringuserName=map.get("USERNAME");//获取用户名
StringcomputerName=map.get("COMPUTERNAME");//获取计算机名
StringuserDomain=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("java.class.version"));
System.out.println("Java的类路径:"+props.getProperty("java.class.path"));
System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path"));
System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));
System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs"));
System.out.println("操作系统的名称:"+props.getProperty("os.name"));
System.out.println("操作系统的构架:"+props.getProperty("os.arch"));
System.out.println("操作系统的版本:"+props.getProperty("os.version"));
System.out.println("文件分隔符:"+props.getProperty("file.separator"));
System.out.println("路径分隔符:"+props.getProperty("path.separator"));
System.out.println("行分隔符:"+props.getProperty("line.separator"));
System.out.println("用户的账户名称:"+props.getProperty("user.name"));
System.out.println("用户的主目录:"+props.getProperty("user.home"));
System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));
}
privatestaticvoidmemory()throwsSigarException{
Sigarsigar=newSigar();
Memmem=sigar.getMem();
floattotal=mem.getTotal();
floatused=mem.getUsed();
//内存总量
System.out.println("内存总量:"+mem.getTotal()/1024L/1024L+"Mav");
//当前内存使用量
System.out.println("当前内存使用量:"+mem.getUsed()/1024L/1024L+"Mused");
//当前内存剩余量
System.out.println("当前内存剩余量:"+mem.getFree()/1024L/1024L+"Mfree");
//当前内存使用率
System.out.println("内存使用率:"+used/total*100+"%");
Swapswap=sigar.getSwap();
//交换区总量
System.out.println("交换区总量:"+swap.getTotal()/1024L/1024L+"Mav");
//当前交换区使用量
System.out.println("当前交换区使用量:"+swap.getUsed()/1024L/1024L+"Mused");
//当前交换区剩余量
System.out.println("当前交换区剩余量:"+swap.getFree()/1024L/1024L+"Mfree");
}
privatestaticvoidcpu()throwsSigarException{
Sigarsigar=newSigar();
CpuInfoinfos[]=sigar.getCpuInfoList();
CpuPerccpuList[]=null;
cpuList=sigar.getCpuPercList();
for(inti=0;i<infos.length;i++){//不管是单块CPU还是多CPU都适用
CpuInfoinfo=infos[i];
System.out.println("第"+(i+1)+"块CPU信息");
System.out.println("CPU的总量MHz:"+info.getMhz());//CPU的总量MHz
System.out.println("CPU生产商:"+info.getVendor());//获得CPU的卖主,如:Intel
System.out.println("CPU类别:"+info.getModel());//获得CPU的类别,如:Celeron
System.out.println("CPU缓存数量:"+info.getCacheSize());//缓冲存储器数量
printCpuPerc(cpuList[i]);
}
}
privatestaticvoidprintCpuPerc(CpuPerccpu){
System.out.println("CPU用户使用率:"+CpuPerc.format(cpu.getUser()));//用户使用率
System.out.println("CPU系统使用率:"+CpuPerc.format(cpu.getSys()));//系统使用率
System.out.println("CPU当前等待率:"+CpuPerc.format(cpu.getWait()));//当前等待率
System.out.println("CPU当前错误率:"+CpuPerc.format(cpu.getNice()));//
System.out.println("CPU当前空闲率:"+CpuPerc.format(cpu.getIdle()));//当前空闲率
System.out.println("CPU总的使用率:"+CpuPerc.format(cpu.getCombined()));//总的使用率
}
privatestaticvoidos(){
OperatingSystemOS=OperatingSystem.getInstance();
//操作系统内核类型如:386、486、586等x86
System.out.println("操作系统:"+OS.getArch());
System.out.println("操作系统CpuEndian():"+OS.getCpuEndian());//
System.out.println("操作系统DataModel():"+OS.getDataModel());//
//系统描述
System.out.println("操作系统的描述:"+OS.getDescription());
//操作系统类型
//System.out.println("OS.getName():"+OS.getName());
//System.out.println("OS.getPatchLevel():"+OS.getPatchLevel());//
//操作系统的卖主
System.out.println("操作系统的卖主:"+OS.getVendor());
//卖主名称
System.out.println("操作系统的卖主名:"+OS.getVendorCodeName());
//操作系统名称
System.out.println("操作系统名称:"+OS.getVendorName());
//操作系统卖主类型
System.out.println("操作系统卖主类型:"+OS.getVendorVersion());
//操作系统的版本号
System.out.println("操作系统的版本号:"+OS.getVersion());
}
privatestaticvoidwho()throwsSigarException{
Sigarsigar=newSigar();
Whowho[]=sigar.getWhoList();
if(who!=null&&who.length>0){
for(inti=0;i<who.length;i++){
//System.out.println("当前系统进程表中的用户名"+String.valueOf(i));
Who_who=who[i];
System.out.println("用户控制台:"+_who.getDevice());
System.out.println("用户host:"+_who.getHost());
//System.out.println("getTime():"+_who.getTime());
//当前系统进程表中的用户名
System.out.println("当前系统进程表中的用户名:"+_who.getUser());
}
}
}
}
‘贰’ java如何读取操作系统环境变量
描述: 取得当前系统变量的程序。 java中的System.getProperty只是针对JVM来的,如果要取得系统环境变量,还要用到系统相关的函数 作者: 慈勤强
‘叁’ java中如何取操作系统字符集
class Test
{
public static void main(String[] args)
{
Properties pps=System.getProperties();
pps.list(System.out);
System.out.println("--------------------以上为JVM的所有属性值-------------");
System.out.print("系统默认的字符集为:");
String name=System.getProperty("sun.jnu.encoding");
System.out.print(name);
}
}
‘肆’ java如何读取当前是什么系统
Propertiesprops=System.getProperties();//获得系统属性集
StringosName=props.getProperty("os.name");//操作系统名称
StringosArch=props.getProperty("os.arch");//操作系统构架
StringosVersion=props.getProperty("os.version");//操作系统版本
System.err.println(osName);
System.err.println(osArch);
System.err.println(osVersion);
‘伍’ java获得当前服务器的操作系统是什么怎么获得
import java.util.Properties;
public class Test{
public static void main (String args[]){
Properties props=System.getProperties(); //系统属性
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("java.class.version"));
System.out.println("Java的类路径:"+props.getProperty("java.class.path"));
System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path"));
System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));
System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs"));
System.out.println("操作系统的名称:"+props.getProperty("os.name"));
System.out.println("操作系统的构架:"+props.getProperty("os.arch"));
System.out.println("操作系统的版本:"+props.getProperty("os.version"));
System.out.println("文件分隔符:"+props.getProperty("file.separator")); //在 unix 系统中是”/”
System.out.println("路径分隔符:"+props.getProperty("path.separator")); //在 unix 系统中是”:”
System.out.println("行分隔符:"+props.getProperty("line.separator")); //在 unix 系统中是”/n”
System.out.println("用户的账户名称:"+props.getProperty("user.name"));
System.out.println("用户的主目录:"+props.getProperty("user.home"));
System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));
}
}
‘陆’ java如何获取linux操作系统下的硬件信息
引入包:
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;
代码太长 了,不给贴出来。相关的代码太多了,github一抓一大把。
‘柒’ java如何获取Linux操作系统下的ip地址和网
以下代码需要 JDK 6 及以后版本,如果是 JDK 6 以下版本的话,没有直接获得 MAC 的 API。
import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration; public class NetworkInfo { private final static char[] HEX = "0123456789ABCDEF".toCharArray(); public static void main(String[] args) throws SocketException { for(Enumeration<NetworkInterface> i = NetworkInterface.getNetworkInterfaces(); i.hasMoreElements(); ) { NetworkInterface ni = i.nextElement(); System.out.println("NETWORK CARD NAME: " + ni.getDisplayName()); System.out.println("MAC: " + toMacString(ni.getHardwareAddress())); for(Enumeration<InetAddress> j = ni.getInetAddresses(); j.hasMoreElements(); ) { System.out.println(" " + j.nextElement()); } } } private static String toMacString(byte[] bys) { if(bys == null) { return null; } char[] chs = new char[bys.length * 3 - 1]; for(int i = 0, k = 0; i < bys.length; i++) { if(i > 0) { chs[k++] = '-'; } chs[k++] = HEX[(bys[i] >> 4) & 0xf]; chs[k++] = HEX[bys[i] & 0xf]; } return new String(chs); }}
‘捌’ JAVA中怎么获取操作者的操作系统,浏览器类型哦
1,从request里可以获取用户浏览器类型,
具体操作见例子:
Enumeration e = request.getHeaderNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = request.getHeader(name);
System.out.println(name + " = " + value);
}
这样可以遍历从客户端传来的所有头信息:
request.getHeaders("User-Agent");
获取User-Agent (客户端的类型,一般用来区分不同的浏览器)。
2,获取操作系统信息
操作系统信息 String osName = System.getProperty("os.name" );
操作系统版本 String osVersion=System.getProperty("os.version");
‘玖’ java 如何判断操作系统是Linux还是Windows
Java 判断操作系统是linux还是windows,主要是使用system这个类,这个类型提供了获取java版本、安装目录、操作系统等等信息,代码如下:
System.out.println("===========操作系统是:"+System.getProperties().getProperty("os.name"));
System.out.println("===========文件的分隔符为file.separator:"+System.getProperties().getProperty("file.separator"));
System类
public staticPropertiesgetProperties()
将getProperty(String)方法使用的当前系统属性集合作为Properties对象返回
键 相关值的描述
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录