现在做一个项目,要调用.so库文件中的程序,遇到了问题。然后写了个main控制台程序测试,用eclipse编译好了后在命令行下运行
java -Djava.library.path=/home/so/ MainTest
这样可以执行成功,
但是如果把 -Djava.library.path=/home/so/ 这块的内容用
System.setProperty("java.library.path", "/home/so/"); 代替写在程序中的时候就不能正常运行
报异常:java.lang.UnsatisfiedLinkError: no bd_jni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at com.banding.jni.<clinit>(jni.java:30)
at com.banding.web.net.CodeBuilder.createTCPBytes(CodeBuilder.java:116)
at com.banding.web.net.tcpLibrary.AuthenticateStream.ValidateUser(AuthenticateStream.java:81)
at TestAuthenticateStream.validateUser(MainTest.java:50)
at MainTest.main(MainTest.java:139)
我用System.getProperty("java.library.path");也可以获得值"/home/so/",
用System.setProperty写在程序中和在命令行下 -D设置有什么不同吗?
我要的是在程序中设置 java.library.path 求解决方案,在线等
------解决方案--------------------