Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Windows服务器 > » 正文

java调用dll或os文件注意事项

来源: alvinqq 分享至:
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.html' target='_blank'>export LD_LIBRARY_PATH

  或者直接放在%Java_HOME%/jre/lib/i386/下面。

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史