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讀取硬盤序列號的例子,徹底能夠在生產環境中使用。
相關文章
相關標籤/搜索