java在jni程序中保存dll的位置
我正在尝试运行一个java本机接口程序。当我试图运行该程序时,我得到一个错误,因为我使用C:\Java\bin\Java JNITest运行该程序
Exception in thread "main" java.lang.UnsatisfiedLinkError: Expecting an absolute path of the library: JNITest
at java.lang.Runtime.load0(Runtime.java:806)
at java.lang.System.load(System.java:1086)
at JNITest.<clinit>(JNITest.java:5)
我的节目是
public class JNITest {
static{
// System.load("/home/user1/
// JNI_project/mynativelib.so");
System.load("JNITest");
}
// public native void LOSSGREENAMPT(TIMEINTERVAL, STARTINITIALLOSS,double ENDINITIALLOSS,double MOISTUREDEFICIT, double SUCTION,double CONDUCTIVITY, double STARTINFILTRATION,double FINALINFILTRATION, double IMPERVIOUSAREARATIO,int NUMBERPRECIP, double PRECIP(1),double EXCESS(1),int ERRORCODE[4], char ERRORMESSAGE[60],char L_errorMessage[60]);
public static void main(String[] args) {
JNITest test=new JNITest();
//test.greet();
}
}
我的程序出了什么问题
# 1 楼答案
System.load(String filename)
需要文件参数作为库的绝对路径。因此,如果JNITest的完整路径。dll是C:\JNITest.dll
,您应该调用System.load("C:/JNITest.dll")