我正在编写一个呼叫另一个类的构造函数的静态块的构造函数的测试用例
static
{
System.loadLibrary("PixelProxy_jni");
}
我已经指定了库路径为
-Djava.libarary.path=C:UsersDesktoplibPixelProxy_jni.so
在Eclipse中的VM参数中,但仍然不起作用。
请帮助我找到有关此
的解决方案堆栈跟踪
java.lang.UnsatisfiedLinkError: no PixelProxy_jni in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.XrayPixelProxyInputStream.<clinit>(XrayPixelProxyInputStream.java:36)
at com.RadImageReader.readImage(RadImageReader.java:57)
at servicedisplay.ServiceImageDisplayer.showImage(ServiceImageDisplayer.java:124)
at servicedisplay.test1.ServiceImageDisplayerTest.testShowImageStringIntIntIntIntIntInt(ServiceImageDisplayerTest.java:95)
从该文件路径中,看起来您在Windows上,这意味着loadLibrary
不会寻找名为libPixelProxy_jni.so
的文件,它将寻找名为PixelProxy_jni.dll
的文件。(您可以通过使用System.mapLibraryName
确切找出它将寻找的内容。(
您可以找到库的.dll
,自己编译一个,也可以尝试System.load
,这使您可以从绝对路径加载本机库:
System.load("C:UsersDesktoplibPixelProxy_jni.so");
但这只有在为Windows编译的库时才能起作用。