java经过jni方式获取硬盘序列号(windows,linux)

linux系统java经过jni方式获取硬盘序列号php

http://blog.csdn.net/starter110/article/details/8186788html

使用jni在windows下读取硬盘序列号 http://www.iflym.com/index.php/code/201109070001.htmljava

一般作java程序的开发人员都想过想要经过某种手段来保护本身的程序。通常的方式是经过受权,采起软件受权的方式。这个时间就须要读取客户机器上的一些关键信息,好比硬盘序列号,网卡,cpu信息或者bios信息等。其中,java自己能够读取网卡信息,对于其它的机器信息读取出来则有点困难了。然而,经过其它语言,好比c++,这些信息均可以经过必定的函数将其读取出来。     本文描述了经过网上的一个读取硬盘序列号的小程序(使用c++实现),采用jni来再次引用实现,以达到首要的目的。linux

    首先是须要下载相应的经过c++读取硬盘信息的相应代码,相应的源代码能够到此地址下载。     http://download.csdn.net/download/Fly_m/3581179     待下载彻底以后,经过如下简单的方式便可以读取硬盘序列号,并返回相应的java 字符串信息。如定义的读取硬盘序列号的java本地方法为:ios

static native String r();
则相对应的jni的实现即为:
JNIEXPORT jstring JNICALL XXX_r
(JNIEnv *env, jclass cls) {
     DiskInfo d = DiskInfo();
     int i = d.GetDiskInfo();
     if (i != 0 ) {
         return env->NewStringUTF( "" );
     }
     return env->NewStringUTF(d.szSerialNumber);
}
以上即为完整的经过jni读取硬盘序列号的例子,彻底能够在生产环境中使用。
相关文章
相关标签/搜索