Java如何取得计算机硬件信息么
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java如何取得计算机硬件信息么相关的知识,希望对你有一定的参考价值。
Java如何取得计算机硬件信息么
可以的
IMonitorService接口:public interface IMonitorService
public MonitorInfoBean getMonitorInfoBean() throws Exception;
MonitorInfoBean类:
/*采集系统存取数据JavaBean*/
public class MonitorInfoBean implements Comparable<MonitorInfoBean>
/** 操作系统. */
private String osName;
/** 总的物理内存. */
private float totalMemorySize;
/** 已使用的物理内存. */
private float usedMemory;
/** cpu使用率. */
private double cpuRatio;
/** 主机IP地址 */
private String mIpAddress;
/** 数据存储时间 */
private String dDateTime;
/**内存使用率*/
private float memoryRatio;
/**linux下Buffers内存*/
private float buffersMemory;
/**linux下Cached内存*/
private float cachedMemory;
public float getBuffersMemory()
return buffersMemory;
public float getCachedMemory()
return cachedMemory;
public String getDDateTime()
return dDateTime;
public void setDDateTime(String dateTime)
dDateTime = dateTime;
public String getMIpAddress()
return mIpAddress;
public void setMIpAddress(String ipAddress)
mIpAddress = ipAddress;
public String getOsName()
return osName;
public void setOsName(String osName)
this.osName = osName;
public float getTotalMemorySize()
return totalMemorySize;
public void setTotalMemorySize(float totalMemorySize)
this.totalMemorySize = totalMemorySize;
public float getUsedMemory()
return usedMemory;
public void setUsedMemory(long usedMemory)
this.usedMemory = usedMemory;
public double getCpuRatio()
return cpuRatio;
public void setCpuRatio(double cpuRatio)
this.cpuRatio = cpuRatio;
public int compareTo(MonitorInfoBean m)
String stra = this.getDDateTime();
String strb = m.getDDateTime();
Timestamp a = Timestamp.valueOf(stra);
Timestamp b = Timestamp.valueOf(strb);
if (a.before(b))
return -1;
else if (a.after(b))
return 1;
else
return 0;
public float getMemoryRatio()
return memoryRatio;
public void setMemoryRatio(float memoryRatio)
this.memoryRatio = memoryRatio;
public void setUsedMemory(float usedMemory)
this.usedMemory = usedMemory;
public void setBuffersMemory(float buffersMemory)
this.buffersMemory = buffersMemory;
public void setCachedMemory(float cachedMemory)
this.cachedMemory = cachedMemory;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;
import java.util.StringTokenizer;
import sun.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean; 参考技术A Windows下只能通过API来取得硬件信息,所以Java可以使用JNI,通过VC写的DLL来取得硬件信息。本回答被提问者采纳 参考技术B Windows下只能通过API来取得硬件信息,所以Java可以使用JNI,通过VC写的DLL来取得硬件信息。
Java本身并不能获得如此多的信息,通过JNI的方式调用本地接口的方式实现
java如何读取硬件信息
我现在做一个付费的桌面应用的项目,希望能实现“注册码”的功能,别人在没有得到我的许可的情况下,得不到注册码,也就无法使用软件了。还有,我看别的软件有的只认一台计算机,如果在别的机器上安装就失效了,能给详细介绍下:需要哪些技术。
非常感谢,我只有60分,全部献出!
Java读取硬件信息(JDK5+)
System.getProperty(String src);
(以下为src对应的系统信息,例如System.getProperty("java.version")表示Java 运行时环境版本信息)
java.version:Java 运行时环境版本
java.vendor:Java 运行时环境供应商
java.vendor.url:Java 供应商的 URL
java.home:Java 安装目录
java.vm.specification.version:Java 虚拟机规范版本
java.vm.specification.vendor:Java 虚拟机规范供应商
java.vm.specification.name:Java 虚拟机规范名称
java.vm.version:Java 虚拟机实现版本
java.vm.vendor:Java 虚拟机实现供应商
java.vm.name:Java 虚拟机实现名称
java.specification.version:Java 运行时环境规范版本
java.specification.vendor:Java 运行时环境规范供应商
java.specification.name:Java 运行时环境规范名称
java.class.version:Java 类格式版本号
java.class.path:Java 类路径
java.library.path:加载库时搜索的路径列表
java.io.tmpdir:默认的临时文件路径
java.compiler:要使用的 JIT 编译器的名称
java.ext.dirs:一个或多个扩展目录的路径
os.name:操作系统的名称
os.arch:操作系统的架构
os.version:操作系统的版本
file.separator:文件分隔符(在 UNIX 系统中是“/”)
path.separator:路径分隔符(在 UNIX 系统中是“:”)
line.separator:行分隔符(在 UNIX 系统中是“/n”)
user.name:用户的账户名称
user.home:用户的主目录
user.dir:用户的当前工作目录 参考技术A 把这个方法放到你的类下边
public void testGetSysInfo()
//这个是信息变量
String address = "";
//获得系统名称
String os = System.getProperty("os.name");
if (os != null && os.startsWith("Windows"))
//抓异常
try
//定义dos命令
String command = "cmd.exe /c ipconfig /all";
//执行dos命令
Process p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String line;
while ((line = br.readLine()) != null)
if (line.indexOf("Physical Address") > 0)
int index = line.indexOf(":");
index += 2;
address = line.substring(index);
break;
br.close();
logger.info("mac address:" + address.trim());
catch (IOException e)
logger.info("Error:" + e);
参考技术B 不能直接读取,
java交互硬件,你是指操作系统的硬件还是第三方的硬件?
一般来讲java的出发点是安全的编程语言,也就是底层一些接口没有提供可使用的api
那么如果我们业务确实有这种需求,
如果是第三方的硬件,可以要求提供商提供相关接口,如果是类似是你指的操作系统,
可以使用c来实现,然后通过java来调用c代码实现交互硬件。 参考技术C 用java做恐怕比较难啊!
你可以做一个dll,然后用java调dll来实现你的功能。 参考技术D 楼主看看这个
好像是能读出机器的一些信息
http://www.rgagnon.com/javadetails/java-0580.html本回答被提问者采纳
以上是关于Java如何取得计算机硬件信息么的主要内容,如果未能解决你的问题,请参考以下文章