如何加载DLL并在Tomcat中调用JNI方法?

时间:2013-04-08 18:43:38

标签: java eclipse tomcat dll java-native-interface

我已经使用JNI从Java程序成功调用了一个包含在dll中的方法。这就是我的所作所为:

public class MyClass {
  static {
     System.load("C:/Users/pabloruiz/library.dll");
     System.loadLibrary("library"); // This works too if the dll is in the Java Build Path
  }

  public native void foo();

  public static void main(String[] args) {
     new MyClass().foo();  // invoke the native method
  }
}

现在我正在尝试使用Tomcat在Web应用程序中执行相同的操作。我尝试使用绝对路径和相对路径,将dll放在WEB-INF / lib中,在Properties-> Java Build Path中选择它,但它不起作用。顺便说一句,我正在研究Eclipse。

这是我得到的错误:

java.lang.UnsatisfiedLinkError: com.example.MyClass.foo()

编辑:

显然,它创建了dll,因为如果我将名称更改为不存在的名称,我会收到错误,告诉我无法找到dll。根据我的理解,它无法在dll中找到方法foo(),这很奇怪,因为正如我上面所说,同样的dll可以从一个简单的java程序(不是Web应用程序)中运行。

0 个答案:

没有答案