小弟现在有个问题无法解决请各位大侠帮帮忙。
我有一个用delphi写的DLL文件。里面有一个函数
function sayHello(i:Integer):Integer;只是为了测试写的。
现在我想在java里调用这个函数。我的java类是这样的
package com.dll;public class TestDLL {
static{
System.loadLibrary("mydll");
}
public native int sayHello(int i);

public static void main(String[] args){
System.out.print(new TestDLL().sayHello(1));
}
}
我把mydll.dll放到了jre/bin下面。运行后出错了。
Exception in thread "main" java.lang.UnsatisfiedLinkError: sayHello
at com.dll.TestDLL.sayHello(Native Method)
at com.dll.TestDLL.main(TestDLL.java:10)
不知道为什么会出这样的错误。

解决方案 »

  1.   

    你的dll应该要放到你的主类下运行的吧
      

  2.   

    delphi写的DLL可能不能直接调用你查阅一下jni的文档经该是用c/c++来写dll,并且将jdk所带的jni.h和jdk根据你的方法生成的头文件加进去java只能调用符合jni定义的dll函数你的情况可以写个符合jni的c的dll调用delphi写的DLL