`

Java获取Windows硬件信息

    博客分类:
  • java
 
阅读更多

Java获取Windows硬件信息

 

        /**
	 * @param drive 硬盘驱动器分区 如C,D
	 * @return 该分区的卷标
	 */
	public static String getHDSerial(String drive) {
		String result = "";
		try {
			File file = File.createTempFile("tmp", ".vbs");
			file.deleteOnExit();
			FileWriter fw = new java.io.FileWriter(file);
			String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n" + "Set colDrives = objFSO.Drives\n" + "Set objDrive = colDrives.item(\""
					+ drive + "\")\n" + "Wscript.Echo objDrive.SerialNumber";
			fw.write(vbs);
			fw.close();
			Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
			BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
			String line;
			while ((line = input.readLine()) != null) {
				result += line;
			}
			input.close();
			file.delete();
		} catch (Exception e) {

		}
		if (result.trim().length() < 1 || result == null) {
			result = "无磁盘ID被读取";
		}
		return result.trim();
	}
	/**
	 * 获取CPU号,多CPU时,只取第一个
	 * @return
	 */
	public static String getCPUSerial() {
		String result = "";
		try {
			File file = File.createTempFile("tmp", ".vbs");
			file.deleteOnExit();
			FileWriter fw = new java.io.FileWriter(file);
			String vbs = "On Error Resume Next \r\n\r\n" + "strComputer = \".\"  \r\n" + "Set objWMIService = GetObject(\"winmgmts:\" _ \r\n"
					+ "    & \"{impersonationLevel=impersonate}!\\\\\" & strComputer & \"\\root\\cimv2\") \r\n"
					+ "Set colItems = objWMIService.ExecQuery(\"Select * from Win32_Processor\")  \r\n " + "For Each objItem in colItems\r\n "
					+ "    Wscript.Echo objItem.ProcessorId  \r\n " + "    exit for  ' do the first cpu only! \r\n" + "Next                    ";

			fw.write(vbs);
			fw.close();
			Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
			BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
			String line;
			while ((line = input.readLine()) != null) {
				result += line;
			}
			input.close();
			file.delete();
		} catch (Exception e) {
			e.fillInStackTrace();
		}
		if (result.trim().length() < 1 || result == null) {
			result = "无CPU_ID被读取";
		}
		return result.trim();
	}
	/***
	 * 获取MAC地址
	 * @return
	 */
	public String getMac() {
		String macStr = null;
		try {
			InetAddress ip = InetAddress.getLocalHost();
			NetworkInterface network = NetworkInterface.getByInetAddress(ip);
			byte[] mac = network.getHardwareAddress();
			System.out.print("Current MAC address : ");
			StringBuilder sb = new StringBuilder();
			for (int i = 0; i < mac.length; i++) {
				sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
			}
			macStr = sb.toString();
			System.out.println(sb.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return macStr;
	}

 

分享到:
评论

相关推荐

    java读取服务器硬件信息(windowx+linux+Mac OS)

    在Windows环境下,Java可以通过Java Native Interface (JNI) 来调用本地API,如Kernel32.dll中的函数,获取硬件信息,例如CPU型号、内存大小等。例如,可以使用WMI(Windows Management Instrumentation)接口来查询...

    java获取系统、硬件、设备相关信息

    java 1. 使用wmic相关命令获取windows硬件相关信息。 2. 使用shell相关的dmidecode/fdisk/ifconfig命令获取Linux硬件和系统相关信息

    使用j-Interop实现java连接wmi获取windows系统信息的例子

    总结起来,利用j-Interop库,Java开发者能够轻松地通过WMI接口获取Windows系统的硬件和性能信息,从而实现更高效、更灵活的系统监控和管理。这在运维自动化、日志收集、性能分析等场景中具有广泛的应用价值。

    java获取服务器基本信息的方法

    以下是一些使用Java获取服务器基本信息的关键知识点: 1. **第三方库Sigar**: Sigar(System Information Gatherer and Reporter)是由Hyperic公司开发的一个跨平台的系统监控库。它提供了丰富的API来获取各种操作...

    java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)

    需要注意的是,由于Java的跨平台特性,不同操作系统可能需要不同的方式来获取硬件信息,因此Siger库可能需要根据不同的操作系统(如Windows、Linux、MacOS等)实现不同的获取策略。此外,由于系统权限问题,部分敏感...

    java实现读取硬件信息

    在Java编程语言中,获取硬件信息是通过操作系统提供的接口或者第三方库来实现的。下面将详细介绍如何使用Java来实现读取计算机的硬件信息。 首先,Java标准库并不直接支持读取硬件信息,如CPU型号、内存容量、硬盘...

    JAVA在Windows平台上生成机器码

    总的来说,"JAVA在Windows平台上生成机器码"涉及到Java的本地接口技术,用于提升性能或进行低级硬件交互。这个过程包括编写JNI代码、生成头文件、实现本地方法、编译本地代码以及在Java程序中加载和调用这些本地方法...

    java读取硬件信息所需jar包以及sigar-x86-winnt.dll文件

    在Java编程中,获取计算机硬件信息是一项常见的任务,这通常涉及到操作系统、处理器、内存、硬盘等设备的状态。为了实现这一功能,开发人员可以利用第三方库,如Sigar(System Information Gatherer and Reporter)...

    Java获取CPU&主板&硬盘序列号

    在Java编程中,获取计算机硬件信息,如CPU、主板和硬盘序列号,通常是通过操作系统提供的API接口或者第三方库来实现的。以下是一个详细的步骤和知识点介绍: 1. **CPU序列号获取**: CPU序列号是CPU的一个唯一标识...

    java 获取usb外接设备信息整理。

    在Java编程环境中,获取USB外接设备的信息是一项重要的任务,特别是在物联网(IoT)和设备控制应用中。本文将深入探讨如何使用Java来检测、识别并获取USB设备的相关信息。 首先,我们需要理解Java中处理USB设备的基本...

    java11 windows64位

    Windows 64位版本是专为在Windows操作系统上运行的64位处理器设计的,能够充分利用现代计算机硬件的性能优势。 Java SE Development Kit (JDK) 11.0.15.1是Java 11的一个更新版本,它包含了Java开发所需的所有工具...

    java获取linux服务器上的IP操作

    Java获取Linux服务器上的IP操作 Java获取Linux服务器上的IP操作是Java开发中的一项重要任务。然而,在Linux服务器上获取IP地址却存在一些问题。在本文中,我们将详细介绍Java获取Linux服务器上的IP操作,包括Linux...

    java开发的一个windows的远程监控软件

    标题中的“java开发的一个windows的远程监控软件”表明这是一个使用Java编程语言开发的应用程序,其主要功能是针对Windows操作系统进行远程监控。Java是一种跨平台的编程语言,这意味着编写好的Java程序可以在任何...

    java-getDisk.rar_Java 获取主板ID_java获取电脑ID

    在Java编程语言中,获取计算机硬件信息,如主板ID(也称为系统UUID)和硬盘分区编号,是一项常见的任务,尤其在系统管理和软件授权等领域。以下将详细解释如何使用Java实现这些功能。 首先,主板ID是计算机主板上的...

    JAVA rs232 串口 硬件com接口

    在Java中,通过Java Native Interface (JNI) 或者Java的“java.lang.reflect.InvocationHandler”接口,可以调用这个DLL文件来实现与硬件的直接交互。 2. `comm.jar`:这是Java串口通信的API库,包含了Java串口通信...

    java读取注册表信息

    注册表是Windows操作系统中的一个重要数据库,存储了系统的配置信息,如软件设置、硬件设备信息等。Java本身并不直接支持读取注册表,但我们可以借助第三方库,比如JNA(Java Native Access)或者Jacob(Java ...

    windows下java访问hid设备

    在Windows环境下,使用Java语言来访问HID(Human Interface Device)设备是一项技术挑战,因为Java标准库并不直接支持这样的操作。然而,通过结合使用Java Native Interface(JNI)和其他第三方库,我们可以实现这一...

    java获取硬盘序列号的两种方法

    在Windows操作系统中,可以利用WMI接口来获取硬件信息,包括硬盘序列号。以下是如何使用Java通过WMI获取硬盘序列号的步骤: 1. 引入依赖:由于Java标准库不直接支持WMI操作,你需要引入第三方库,如`com.sun.jna`...

    java实现windows蓝牙与android设备通信

    在Windows系统上,BlueCove利用了Microsoft的Bluetooth API来与硬件交互。 要创建一个蓝牙服务器,我们需要遵循以下步骤: 1. **引入BlueCove库**:首先,在Java项目中添加BlueCove的依赖。这通常通过Maven或...

Global site tag (gtag.js) - Google Analytics