java web怎么调用dll

Python09

java web怎么调用dll,第1张

java调用dll要用到jni(java本地接口)

例如程序TestDll.java,内容为:

public class TestDll

{

 static

 {

  System.loadLibrary("xxx.dll")

 }

 public native static int get()

 public native static void set(int i)

 public static void main(String[] args)

 {

  TestDll test = new TestDll()

  test.set(10)

  System.out.println(test.get())

 }

}

这个例子只是为了示意jni如何用,并不是实际的工程代码。

你可以搜索一下jni的详细信息,通常都有详细的例子(如使用user32.dll的例子)

JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。

简单介绍及应用如下:

一、JAVA中所需要做的工作

在JAVA程序中,首先需要在类中声明所调用的库名称,如下:

static {

System.loadLibrary(“goodluck”)

}

在这里,库的扩展名字可以不用写出来,究竟是DLL还是SO,由系统自己判断。

还需要对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具 体实现。如下:

public native static void set(int i)

public native static int get()

然后编译该JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就会生成C/C++的头文件。

例如程序testdll.java,内容为:

public class testdll

{

static

{

System.loadLibrary("goodluck")

}

public native static int get()

public native static void set(int i)

public static void main(String[] args)

{

testdll test = new testdll()

test.set(10)

System.out.println(test.get())

}

}

用javac testdll.java编译它,会生成testdll.class。

再用javah testdll,则会在当前目录下生成testdll.h文件,这个文件需要被C/C++程序调用来生成所需的库文件。