如何用java实现获取系统"每一个CPU","每一个分区(solaris下叫mount点)"和"内存"的信息? 如何用java实现获取系统"每一个CPU","每一个分区(solaris下叫mount点)","内存"的信息? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个要借助第三方软件。如smarts 找windows的命令吧package hardware;/** * @author Administrator * * TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板 *///Java获得CPU序列号和网卡Mac地址/*利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(String)接口,要用Runtime.getRuntime().exec(String[])这个接口,不然复杂命令的执行会有问题。例子如下(拿cpu个数,其他类似):定义命令:WindowsCmd ="cmd.exe /c echo %NUMBER_OF_PROCESSORS%";//windows的特殊SolarisCmd = {"/bin/sh", "-c", "/usr/sbin/psrinfo | wc -l"};AIXCmd = {"/bin/sh", "-c", "/usr/sbin/lsdev -Cc processor | wc -l"};HPUXCmd = {"/bin/sh", "-c", "echo \"map\" | /usr/sbin/cstm | grep CPU | wc -l "};LinuxCmd = {"/bin/sh", "-c", "cat /proc/cpuinfo | grep ^process | wc -l"};然后判断系统:os = System.getProperty("os.name").toLowerCase();根据不同的操作系统call不同的命令。*/import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.LineNumberReader;public class GetMACAddress{ public String getMACAddress(String ipAddress) { String str = "",strMAC = "",macAddress = ""; try { Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress); InputStreamReader ir = new InputStreamReader(pp.getInputStream()); LineNumberReader input = new LineNumberReader(ir); for(int i = 1;i < 100;i++) { str = input.readLine(); if(str != null) { if(str.indexOf("MAC Address") > 1) { strMAC = str.substring(str.indexOf("MAC Address") + 14,str.length()); break; } } } } catch(IOException ex) { return "Can't Get MAC Address!"; } // if(strMAC.length() < 17) { System.out.println(strMAC.length()); return "Error!"; } macAddress = strMAC.substring(0,2) + ":" + strMAC.substring(3,5) + ":" + strMAC.substring(6,8) + ":" + strMAC.substring(9,11) + ":" + strMAC.substring(12,14) + ":" + strMAC.substring(15,17); // return macAddress; } public static void main(String[] args) { GetMACAddress getMACAddress = new GetMACAddress(); System.out.println(getMACAddress.getMACAddress("127.0.0.1")); String os = System.getProperty("os.name").toLowerCase(); if(os.equals("windows 2003")) { String[] WindowsCmd ={"cmd.exe", "/c", "echo %NUMBER_OF_PROCESSORS%"};//windows的特殊 char cr[]=null; try { java.lang.Process proc = Runtime.getRuntime().exec(WindowsCmd); InputStream istr = proc.getInputStream(); byte[] data = new byte[2]; istr.read(data); String netdata = new String(data); System.out.println("cpu个数:"+netdata); } catch(Exception e) { System.out.println(e.getStackTrace()); } } try { java.lang.Process proc = Runtime.getRuntime().exec("ipconfig /all"); InputStream istr = proc.getInputStream(); byte[] data = new byte[1024]; istr.read(data); String netdata = new String(data); System.out.println("Your Mac Address=" + procAll(netdata)); } catch(IOException e) { System.out.println("error=" + e); } } public static String procAll(String str) { return procStringEnd(procFirstMac(procAddress(str))); } public static String procAddress(String str) { int indexof = str.indexOf("Physical Address"); if(indexof > 0) { return str.substring(indexof,str.length()); } return str; } public static String procFirstMac(String str) { int indexof = str.indexOf(":"); if(indexof > 0) { return str.substring(indexof + 1,str.length()).trim(); } return str; } public static String procStringEnd(String str) { int indexof = str.indexOf("\r"); if(indexof > 0) { return str.substring(0,indexof).trim(); } return str; }} pdfbox创建pdf文档出错 求大神给看看 JVM内存管理与JAVA内存管理到底有何区别? 解决一个数组越界异常 新建了一个编程交流群,欢迎大家加入 Java中,如何保留两位小数点?? 怎么样用Eelipse配置Struts啊? 如何在hibernate3中,根据*.hbm.xml文件生成POJO类? "又"一个关于String类对象的问题 郁闷我好久的问题,现写出来请大师指点迷津<<<高分求救,解决马上解贴>>>> 菜鸟提问:关于用JAXP的配置 新手读Excel小问题 怎样在WindowsXP中获得cpu利用率和可用内存情况
package hardware;/**
* @author Administrator
*
* TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
//Java获得CPU序列号和网卡Mac地址
/*
利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(String)接口,要用Runtime.getRuntime().exec(String[])这个接口,不然复杂命令的执行会有问题。例子如下(拿cpu个数,其他类似):
定义命令:
WindowsCmd ="cmd.exe /c echo %NUMBER_OF_PROCESSORS%";//windows的特殊
SolarisCmd = {"/bin/sh", "-c", "/usr/sbin/psrinfo | wc -l"};
AIXCmd = {"/bin/sh", "-c", "/usr/sbin/lsdev -Cc processor | wc -l"};
HPUXCmd = {"/bin/sh", "-c", "echo \"map\" | /usr/sbin/cstm | grep CPU | wc -l "};
LinuxCmd = {"/bin/sh", "-c", "cat /proc/cpuinfo | grep ^process | wc -l"};然后判断系统:
os = System.getProperty("os.name").toLowerCase();根据不同的操作系统call不同的命令。
*/
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;public class GetMACAddress
{
public String getMACAddress(String ipAddress)
{
String str = "",strMAC = "",macAddress = "";
try
{
Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress);
InputStreamReader ir = new InputStreamReader(pp.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
for(int i = 1;i < 100;i++)
{
str = input.readLine();
if(str != null)
{
if(str.indexOf("MAC Address") > 1)
{
strMAC = str.substring(str.indexOf("MAC Address") + 14,str.length());
break;
}
}
}
}
catch(IOException ex)
{
return "Can't Get MAC Address!";
}
//
if(strMAC.length() < 17)
{
System.out.println(strMAC.length());
return "Error!";
}
macAddress = strMAC.substring(0,2) + ":"
+ strMAC.substring(3,5) + ":"
+ strMAC.substring(6,8) + ":"
+ strMAC.substring(9,11) + ":"
+ strMAC.substring(12,14) + ":"
+ strMAC.substring(15,17);
//
return macAddress;
} public static void main(String[] args)
{
GetMACAddress getMACAddress = new GetMACAddress();
System.out.println(getMACAddress.getMACAddress("127.0.0.1"));
String os = System.getProperty("os.name").toLowerCase();
if(os.equals("windows 2003"))
{
String[] WindowsCmd ={"cmd.exe", "/c", "echo %NUMBER_OF_PROCESSORS%"};//windows的特殊
char cr[]=null;
try
{
java.lang.Process proc = Runtime.getRuntime().exec(WindowsCmd);
InputStream istr = proc.getInputStream();
byte[] data = new byte[2];
istr.read(data);
String netdata = new String(data);
System.out.println("cpu个数:"+netdata);
}
catch(Exception e)
{
System.out.println(e.getStackTrace());
}
} try
{
java.lang.Process proc = Runtime.getRuntime().exec("ipconfig /all");
InputStream istr = proc.getInputStream();
byte[] data = new byte[1024];
istr.read(data);
String netdata = new String(data);
System.out.println("Your Mac Address=" + procAll(netdata));
}
catch(IOException e)
{
System.out.println("error=" + e);
}
} public static String procAll(String str)
{
return procStringEnd(procFirstMac(procAddress(str)));
} public static String procAddress(String str)
{
int indexof = str.indexOf("Physical Address");
if(indexof > 0)
{
return str.substring(indexof,str.length());
}
return str;
} public static String procFirstMac(String str)
{
int indexof = str.indexOf(":");
if(indexof > 0)
{
return str.substring(indexof + 1,str.length()).trim();
}
return str;
} public static String procStringEnd(String str)
{
int indexof = str.indexOf("\r");
if(indexof > 0)
{
return str.substring(0,indexof).trim();
}
return str;
}
}