有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    System.load(String filename)需要文件参数作为库的绝对路径。因此,如果JNITest的完整路径。dll是C:\JNITest.dll,您应该调用System.load("C:/JNITest.dll")