当前位置: 首页 > news >正文

网站服务器怎么重启北京seo怎么优化

网站服务器怎么重启,北京seo怎么优化,网站建设与维护属于什么岗位,南方科技大学网站建设在 Windows 系统中,获取设备唯一性标识及定位信息对设备管理、安全监控等场景意义重大。本文介绍 Java 中几种实现方法,如 JNA 库、WMI4Java 库及通过 JNI 结合 Windows API。 1. 使用 JNA 库读取 DEVPKEY_Device_ContainerId 在 Windows 系统中&…

在 Windows 系统中,获取设备唯一性标识及定位信息对设备管理、安全监控等场景意义重大。本文介绍 Java 中几种实现方法,如 JNA 库、WMI4Java 库及通过 JNI 结合 Windows API。
在这里插入图片描述

1. 使用 JNA 库读取 DEVPKEY_Device_ContainerId

在 Windows 系统中,DEVPKEY_Device_ContainerId是获取设备容器唯一标识符的属性键。设备容器含多个相关设备,此标识符可区分不同设备集合。Java 无直接获取该属性的方法,可借助 JNA (Java Native Access)库访问 Windows 底层接口实现读取。

  1. 引入 JNA 库

若用 Maven 管理项目,在pom.xml添加如下依赖。

     <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.13.0</version></dependency>
  1. 代码示例

以下是读取DEVPKEY_Device_ContainerId的示例代码。代码中的{设备容器路径}要换成实际在注册表中的路径(类似{数字和字母组合},可查看 Windows 注册表确定)。此代码用Advapi32Util类的registryGetStringValue方法从注册表读取指定键值对应的字符串值,访问HKEY_LOCAL_MACHINE下特定路径获取DEVPKEY_Device_ContainerId对应的设备容器唯一标识符。

     import com.sun.jna.platform.win32.Advapi32Util;import com.sun.jna.platform.win32.WinReg;public class WindowsDeviceIdReader {public static void main(String[] args) {String containerId = Advapi32Util.registryGetStringValue(WinReg.HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\DeviceContainers\\{设备容器路径}\\Properties","{DEVPKEY_Device_ContainerId}");System.out.println("设备容器ID: " + containerId);}}

2. 使用 WMI4Java 库通过 WMI 读取设备信息

Windows Management Instrumentation(WMI)是微软管理技术,可供管理员和开发者统一查询与管理 Windows 系统资源,包括硬件设备、软件组件等。WMI4Java 库为 Java 程序访问 WMI 提供便捷途径。

  1. 添加依赖

若用 Maven 管理项目,在pom.xml添加如下依赖。

     <dependency><groupId>org.boris.winrun4j</groupId><artifactId>wmi4java</artifactId><version>1.5.0</version></dependency>
  1. 代码示例

先创建“WMI”对象,获取“Win32_PhysicalMedia”类实例,该类含物理设备(如硬盘)信息,遍历可获设备序列号这一唯一性标识。不同设备类(如“Win32_NetworkAdapter”用于网络适配器)能提供不同设备标识信息。

     import org.boris.winrun4j.wmi.WMI;import org.boris.winrun4j.wmi.WMIException;import org.boris.winrun4j.wmi.WMIClass;import org.boris.winrun4j.wmi.WMIObject;public class WMIDeviceIdReader {public static void main(String[] args) {try {WMI wmi = new WMI();// 查询Win32_PhysicalMedia类获取设备信息WMIClass c = wmi.getWMIClass("Win32_PhysicalMedia");for (WMIObject o : c.instances()) {String serialNumber = o.get("SerialNumber").toString();System.out.println("设备序列号(唯一性标识之一): " + serialNumber);}} catch (WMIException e) {e.printStackTrace();}}}

3. 使用 Java 本地接口(JNI)结合 Windows API

JNI 允许 Java 代码与其他语言(如 C/C++)编写的代码交互。Windows 提供了一系列 API 用于获取设备信息,例如SetupDiGetDeviceInstanceId函数可获取设备实例 ID,这是设备的一种唯一性标识。

  1. 编写 C/C++代码

C++获取设备实例 ID 示例。代码先通过SetupDiGetClassDevs获取设备信息集,再用SetupDiEnumDeviceInfoSetupDiGetDeviceInstanceId获取首个设备实例 ID 存于传入缓冲区。

     #include <windows.h>#include <setupapi.h>#include <stdio.h>extern "C" {__declspec(dllexport) void getDeviceInstanceId(char* buffer, DWORD bufferSize) {HDEVINFO deviceInfoSet = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_PRESENT);if (deviceInfoSet == INVALID_HANDLE_VALUE) {return;}SP_DEVINFO_DATA deviceInfoData;deviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);if (SetupDiEnumDeviceInfo(deviceInfoSet, 0, &deviceInfoData)) {DWORD requiredSize;SetupDiGetDeviceInstanceId(deviceInfoSet, &deviceInfoData, buffer, bufferSize, &requiredSize);}SetupDiDestroyDeviceInfoList(deviceInfoSet);}}
  1. 编译为动态链接库(DLL)

使用 Visual C++编译器时,可在命令行执行cl /LD getDeviceInstanceId.cpp(代码存于该文件)进行编译,编译步骤因编译器而异。

  1. 在 Java 中调用 DLL

Java 示例代码:用System.loadLibrary加载编译好的 DLL,定义本地方法getDeviceInstanceId,在main方法中调用该方法获取设备实例 ID,注意替换yourDLLName为实际 DLL 名称。

     class DeviceIdJNI {static {System.loadLibrary("yourDLLName"); // 替换为实际的DLL名称}public native void getDeviceInstanceId(byte[] buffer, int bufferSize);public static void main(String[] args) {DeviceIdJNI deviceIdJNI = new DeviceIdJNI();byte[] buffer = new byte[1024];deviceIdJNI.getDeviceInstanceId(buffer, buffer.length);String deviceInstanceId = new String(buffer).trim();System.out.println("设备实例ID: " + deviceInstanceId);}}

4. 总结

  • JNA 库便捷但受限特定属性读取。
  • WMI4Java 库简单但受 WMI 限制且性能可能不足。
  • JNI 结合 Windows API 能灵活获取底层设备信息,但编写维护复杂且要求开发者了解 Windows API 和 C/C++编程。

What is Java technology and why do I need it?
Java is a programming language and computing platform first released by Sun Microsystems in 1995. It has evolved from humble beginnings to power a large share of today’s digital world, by providing the reliable platform upon which many services and applications are built. New, innovative products and digital services designed for the future continue to rely on Java, as well.

While most modern Java applications combine the Java runtime and application together, there are still many applications and even some websites that will not function unless you have a desktop Java installed. Java.com, this website, is intended for consumers who may still require Java for their desktop applications – specifically applications targeting Java 8. Developers as well as users that would like to learn Java programming should visit the dev.java website instead and business users should visit oracle.com/java for more information.

Is Java free to download?
Yes, Java is free to download for personal use.
Java is also free for development: developers can find all the development kits and other useful tools at https://www.oracle.com/javadownload/.

Why should I upgrade to the latest Java patch each quarter when prompted?
The latest Java patches contain important enhancements to improve performance, stability and security of the Java applications that run on your machine. Installing these updates will ensure that your Java applications continue to run with the most up-to-date version.

http://www.hengruixuexiao.com/news/19348.html

相关文章:

  • c web怎么做网站百度客户服务电话
  • 弄一个电影网站怎么做网站推广seo教程
  • 中国空间站叫什么最近国际时事热点事件
  • wordpress 统计文章数量什么叫做优化
  • 优秀个人网站推荐优化seo报价
  • 郑州专业网站建设在哪里免费个人网站建站
  • 卖汽车的网站怎么做如何推广seo
  • 如何开办网站高粱seo博客
  • 网站开发公司如何运营如何用手机免费创建网站
  • 手机商城网站设计怎样在网上做宣传
  • 网站建设服务8阿里云域名注册入口官网
  • 网站推广与优化怎么做seo快速排名工具
  • 专业做汽车零部件平台的网站安徽疫情最新情况
  • 株洲做网站的营销型网站设计制作
  • 做推广的网站带宽需要多少合适目前最火的推广平台
  • 前端开发培训班站长工具seo
  • 松江做移动网站seo伪原创工具
  • 网站设计模板代码青岛神马排名优化
  • 辽宁建设工程信息网新网站网络游戏推广员是做什么的
  • 聊城做网站的公司价格西安分类信息seo公司
  • 物流专线做网站百度网站入口链接
  • 网站开发有哪些服务器快速排名软件案例
  • 怎么做淘宝联盟网站深圳seo优化公司搜索引擎优化方案
  • 网站地图在线生成2022近期时事热点素材摘抄
  • 苏州建设网站首页高端网站建设的公司
  • 上海企业制作网站有哪些免费网站seo
  • 推荐十个网站seo程序
  • 飞速网站排名营销和运营的区别是什么
  • 网站建设都是需要什么软件合肥优化排名推广
  • 网站建设一般用到的语言关键词推广工具