程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java的本地調用幾點要注意

Java的本地調用幾點要注意

編輯:關於JAVA

 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/下面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved