Java JNI未满足链接错误问题

Java JNI未满足链接错误问题,java,c,eclipse,dll,java-native-interface,Java,C,Eclipse,Dll,Java Native Interface,我正在创建一个Java程序,使用JNI通过C程序收集数据。我已经阅读了这个JNI教程(),所有的东西都编译正确了。但是,当我尝试在Eclipse中运行Java程序时,我不断遇到以下错误: 线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有TurtleTrackerImpl 位于java.lang.ClassLoader.loadLibrary(未知源) 位于java.lang.Runtime.loadLibrary0(

我正在创建一个Java程序,使用JNI通过C程序收集数据。我已经阅读了这个JNI教程(),所有的东西都编译正确了。但是,当我尝试在Eclipse中运行Java程序时,我不断遇到以下错误:

线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有TurtleTrackerImpl 位于java.lang.ClassLoader.loadLibrary(未知源) 位于java.lang.Runtime.loadLibrary0(未知源) 位于java.lang.System.loadLibrary(未知源) 在main.TurtleTracker.(TurtleTracker.java:28) 在main.Driver.main(Driver.java:54)

我将使用System.loadLibrary(“TurtletTrackerImpl”)的库包含在同名的Java类中

我已经打印出库路径以确保它是正确的(C:\Users\duril\u 000\workspace\ArenaTracker\ArenaTracker\src),并且我已经检查了该路径中是否存在libTurtleTrackerImpl.jnilib(它存在,我甚至可以在Eclipse中打印它的内容)


网上还有很多其他类似的问题,但我没有找到任何库路径正确的地方,问题仍然存在。请帮忙--我想不出会有什么错?如果需要更多信息,请告诉我

嗯,由于lib的路径问题,当系统无法加载lib时,就会发生这种异常

可能的例外情况:

  • SecurityException——如果存在安全管理器及其检查链接 方法不允许加载指定的动态库

  • UnsatifiedLinkError--如果库不存在

  • NullPointerException——如果libname为null

  • 因此,您似乎需要在方法
    loadLibrary
    中传递完整路径,下面是一个示例:

     // load a library that is Windows/System32 folder
      System.out.println("Loading Library...");
      Runtime.getRuntime().loadLibrary("C:/Windows/System32/crypt32.dll");
      System.out.println("Library Loaded.");
    
    在您的情况下,请尝试以下操作:

    Runtime.getRuntime().loadLibrary("C:\\Users\\duril_000\\workspace\\ArenaTracker\\ArenaTracker\\src\\TurtleTrackerImpl.extension");
    
    别忘了更改扩展名和双栏“\\”