如何在Java中使用.dll

时间:2015-02-17 18:24:20

标签: java c# dll

我有一些C#代码,我已编译成.dll以用作其他程序的资源。如何将其导入我的Java项目以供使用,然后如何引用dll中的代码。我正在使用Eclispe for Java。

1 个答案:

答案 0 :(得分:-1)

恕我直言最简单的方法是使用JNA(Java Native Access)库,这简化了流程。 首先,下载jna.jar(https://maven.java.net/content/repositories/releases/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar)并将其附加到您的项目中。

稍后,在Java中创建一个接口,它将以下列方式在.dll库和java代码之间架起桥梁:

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;


public interface CLibrary extends Library {
    CLibrary INSTANCE = (CLibrary) Native.loadLibrary(
        (Platform.isWindows() ? "windowsDLLName" : "otherDLLName"), CLibrary.class);
    void someMethof(String format, Object... args); // <--example function from dll lib
}

以后再用java代码调用f.e.

  CLibrary.INSTANCE.someMethod()

您必须涵盖一些主题:

  • JVM对本机dll库的访问,请参阅https://github.com/twall/jna/blob/master/www/GettingStarted.md
  • Java和C / C ++之间的类型映射,请参阅http://en.wikipedia.org/wiki/Java_Native_Access 如果您需要示例,以下是一些来源:
  • https://github.com/twall/jna/blob/master/www/GettingStarted.md
  • http://en.wikipedia.org/wiki/Java_Native_Access
  • blog.mwrobel.eu/how-to-call-dll-methods-from-java/