首页 > 代码库 > java通过jni方式获取硬盘序列号(windows,linux)
java通过jni方式获取硬盘序列号(windows,linux)
linux系统java通过jni方式获取硬盘序列号
http://blog.csdn.net/starter110/article/details/8186788
使用jni在windows下读取硬盘序列号 http://www.iflym.com/index.php/code/201109070001.html
通常做java程序的开发人员都想过想要通过某种手段来保护自己的程序。一般的方式是通过授权,采取软件授权的方式。这个时间就需要读取客户机器上的一些关键信息,比如硬盘序列号,网卡,cpu信息或者bios信息等。其中,java本身可以读取网卡信息,对于其它的机器信息读取出来则有点困难了。然而,通过其它语言,比如c++,这些信息都可以通过一定的函数将其读取出来。 本文描述了通过网上的一个读取硬盘序列号的小程序(使用c++实现),采用jni来再次引用实现,以达到首要的目的。
首先是需要下载相应的通过c++读取硬盘信息的相应代码,相应的源代码可以到此地址下载。 http://download.csdn.net/download/Fly_m/3581179 待下载完全之后,通过以下简单的方式即可以读取硬盘序列号,并返回相应的java 字符串信息。如定义的读取硬盘序列号的java本地方法为:
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读取硬盘序列号的例子,完全可以在生产环境中使用。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。