Posted on 2006-10-30 10:27
njwander 閱讀(686)
評論(0) 編輯 收藏
?????? 先介紹一下jni:Java Native Interface,它能夠使java和其他編程語言編寫的應(yīng)用程序和庫進(jìn)行相互操作。
?????? java中調(diào)用c函數(shù),主要是通過本地化接口jni來實(shí)現(xiàn)的,在windows下,調(diào)用的是dll文件,在unix下,調(diào)用的是so文件。這里先介紹編寫調(diào)用c函數(shù)的基本步驟:
????? (1):編寫.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)在編寫c函數(shù)時(shí),要把jni.h和jni_md.h文件放在c的工程中。(3)在java文件中包含如下一句:static{System.loadLibrary("")},引號中為生成的動態(tài)連接庫文件,不用加擴(kuò)展名,系統(tǒng)會自動識別的。