JNI issue on Linux: cannot open shared object file

后端 未结 3 1286
遥遥无期
遥遥无期 2021-01-04 09:18

I\'ve seen this question on here, tried the proposed fixes, but no success so far for me. I have quite some Java experience, but JNI is a long time ago, never did it on Linu

3条回答
  •  自闭症患者
    2021-01-04 09:54

    Clarification on java.library.path and system path:

    java.library.path is a JVM-Variable which can be set - e.g. - by the command line parameter

    -Djava.library.path=xy
    

    DLL's (on windows) and so's (on linux) which are loaded by the java call loadLibrary() must be located in the java.library.path. If it is loaded via JNI it must be located in the system path.

    If such a linked library loads another linked library, latter must be found in the system path. In Windows the system path is resolved against the PATH environment variable, in linux it's the LD_LIBRARY_PATH environment variable (for linked libraries).

    Another point to ensure in linux: Verify that the linked library has executable permissions for the current user. Usually a

    sudo chmod 755 myLinkedLib
    

    does the trick.

提交回复
热议问题