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();
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);
}