java調用dll或so文件注意事項

  Java的本地調用jni。調用c爲例。在Windows下調用.dll文件;在Linux下調用.so文件。

  1 Java部分:寫一個Java調用的方法。

  注意:動態庫的名字的寫法:

  Windows環境:

  loadLibrary("libname");

  注意調用的時候要用全名,擴展名可以不寫。

  Linux環境:

  loadLibrary("name");

  注意調用的時候不要用全名,要去掉前面的lib和後面的擴展名。

  編譯Java文件。然後用Javah 生成.h文件給c程序用。

  注意:如果Java文件又包的話,生成的.h是不一樣的。.h中的函數名會帶上包名。例如:cn/common/testlib.Java,生成的.h中的函數名前面會是:cn_common_testlib。如果沒有包,生成的.h中的函數名就沒有cn_common_

  2 寫好c程序,編譯生成.dll或.so

  vc可以直接生成,或用命令行加參數的方法生成。

  3 .dll和.so放置的位置:libname.dll/libname.so

  Windows環境:

  loadLibrary("libname");

  注意調用的時候要用全名,擴展名可以不寫。

  在環境變量設置PATH=%libname.dll的位置%,這樣Java即可找到自己定義的庫了。

  Linux環境:

  loadLibrary("name");

  注意調用的時候不要用全名,要去掉前面的lib和後面的擴展名。

  在環境變量設置:修改/etc下的profile文件加入這兩句:

  LD_LIBRARY_PATH=libname.so的位置

  export LD_LIBRARY_PATH

  或者直接放在%Java_HOME%/jre/lib/i386/下面。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章