JNA调用dll\so文件的路径问题和测试样例。

关于jda调用dll的路径问题和测试样例
本文主要几点内容如下:
    1.jda具体的放置路径
    2.jdk切换
    3.测试代码

    此文就是便于自己以后回顾使用,所以就不罗嗦jda和jdi直接的区别了。
    我在使用jda的时候,也是按照网上的教程做测试,但是不管怎么放置我的dll都是不能加载此模块的问题。(有些教程感觉很坑)费了好大的功夫最后查到存在以下的问题:

    1.看看自己使用的jdk和dll是32位的还是64位的。这个一定要对照好。然后只要将自己的dll放置在项目的根目录下即可。

    2.dll的问题,因为dll是别人编写的。起先我也没在意这个。后来最测试我自己生成的Demo是用codeblocks生成的。并且将 修改成 就可以。
        但是codeblocks生成64位的dll我还没弄明白(不知道怎么调配置)。所以我的测试代码是32位的dll。
        单用64位的就不会再报找不到指定模块的错误,只会报找不到指定函数的错误。如果谁知道codeblocks生成64位dll的配置,请告诉我下)

    3.再个问题就是本机安装多个jdk互相切换的问题
        其实,一台机子上可以按照多个不同版本的jdk,64位的当然可以按照32位的,但是反过来肯定不行的。
        这样就牵涉到一个切换jdk的问题。我用的是myeclipse,在这个ide是这样切换的,如下:
        你只要配置了这个环境变量,就不用像配置cmd窗口那样配置了。IDE可以自动识别这个路径的。    

    4.我将所有我搜集的资源都上传到我的csdn上,有测试代码,有jda.jar文件。(收取2分的下载分,嘿嘿);

    ps:jda的压缩文件下有两个jar包,另一个是platform-3.5.1.jar这个包让你报错的时候不显示乱码。

        我的资源有mht格式的,建议用firefox打开,但是前提要按照mht插件:如图

资源地址:http://download.csdn.net/detail/hxn_fight/8468845

javaweb下dll的放置路径:

追加一个其他人的链接:http://blog.sina.com.cn/s/blog_9075354e0101kq5f.html

---------------------------------------------------------------------------------------补充linux下的调用方法------------------------------------------------------------------

window上的测试通过了,但是当将项目移到linux下问题就又出现了。

问题:

1.在linux下作的demo是从自己写的main函数启动的没什么问题。(注意jdk的位数)

2..可是当我整个项目发布的时候JNA相关代码就不起作用了。安装网上放在各个目录都不行,例如:/usr/lib   /lib 等等都不行。   System.out.println(System.getProperty("java.library.path"));中的目录试了也不行。


方案:

1.linux下的动态库编译我就不多说了。最关键的问题在于so文件的放置路径。

2.最终发现自己的用的jdk是64位的,所以我将我的so文件放在了/usr/lib64/下就可以了。

3.另一种方法就是在加载动态库的时候,写绝对路径。

4.至于修改/etc/profile 中的配置。亲测不用修改也行。


PS:将自己的心得记录在一方面供自己以后查看,一方面希望也能帮助遇到相同问题的朋友。linux的测试样例就不上传了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值