Posted on 2006-10-30 10:27
njwander 閱讀(688)
評(píng)論(0) 編輯 收藏
?????? 先介紹一下jni:Java Native Interface,它能夠使java和其他編程語(yǔ)言編寫(xiě)的應(yīng)用程序和庫(kù)進(jìn)行相互操作。
?????? java中調(diào)用c函數(shù),主要是通過(guò)本地化接口jni來(lái)實(shí)現(xiàn)的,在windows下,調(diào)用的是dll文件,在unix下,調(diào)用的是so文件。這里先介紹編寫(xiě)調(diào)用c函數(shù)的基本步驟:
????? (1):編寫(xiě).java文件,其中c中的函數(shù)要用public native static修飾。
??????(2):編譯.java文件為.class文件,使用javah生成.h文件。
????? (3):按照.h文件中的函數(shù)形式在c中實(shí)現(xiàn)函數(shù)。
????? (4):生成.dll文件,拷貝到j(luò)ava工程中。
????? (5):運(yùn)行java文件。
??????注意以下幾點(diǎn):(1)如果java源文件放在包中,一定要在工程目錄下使用javah命令。(2)在編寫(xiě)c函數(shù)時(shí),要把jni.h和jni_md.h文件放在c的工程中。(3)在java文件中包含如下一句:static{System.loadLibrary("")},引號(hào)中為生成的動(dòng)態(tài)連接庫(kù)文件,不用加擴(kuò)展名,系統(tǒng)會(huì)自動(dòng)識(shí)別的。