natural_ 2017-12-14 07:18 采纳率: 0%
浏览 7501
已结题

求助!java jni在liunx下提示no in java.library.path

已经放到java.library.path下了,用System.out.println(System.getProperty("java.library.path"));打印结果为/home/heiman/workspace/common-utils/lib;/usr/local/maven/maven3.5.2//bin:/usr/local/java/bin:/usr/local/java/jre/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games,so库放在了/home/heiman/workspace/common-utils/lib下,但是加载不到 求助大神!急!!!!

  • 写回答

6条回答 默认 最新

  • ZhihengTao 2017-12-20 05:02
    关注

    so加载需要指明路径.个人想到几种使用方式

    1. 使用环境变量,即放在特定目录下(其实未必要复制,建立软链接即可),你完全可以使用任何名称的环境变量,只要在源码中读出变量值,然后寻找文件即可
    2. 使用运行时参数指定,即将绝对路径作为参数传入
    3. 使用绝对路径,即在源码中使用绝对路径

    顺便一提,java加载动态库貌似只有两个API
    其一, System.loadLibrary(), 参数好像是库名,即去掉lib前缀和.so*后缀
    其二, System.load(),参数是绝对路径,相对路径好像不可以

    评论

报告相同问题?