我在java代码中用RMI方法调用本地的C函数库System.loadLibrary("libHello");libHello.so文件生成后就放在和执行文件相同的目录下,当执行java可执行文件时,出错:
not found libHello.so in "java.library.path"
网上有资料说放在.so放在当前目录下就可以找到,为什么还出错?

解决方案 »

  1.   

    放在当前目录,或者classpath中。
    确认是在当前的目录下吗?是运行环境的当前目录而不是代码的当前目录哦!
      

  2.   

    要设置这个java.library.path=./
    此外你的CLASSPATH的环境变量可能设置得有问题。另外,Linux和Win32有些差别的。Linux稍微复杂点也许。
      

  3.   

    本问题已经解决,原因是动态库文件.so的名字要比System.loadLibrary("libHello");  中的名字多加一个lib前缀,就可以找到库了,比如System.loadLibrary("libHello"); 中是libHello,那么动态库名字必须是liblibHello