0

我正在尝试将JInput用于我的项目,并且该库需要一些二进制文件才能运行我的应用程序。

我发现,所需的二进制文件在库中。但是,我仍然UnsatisfiedLinkError在做 a 时得到一个,gradle run因为它找不到库二进制文件。

所以我想我需要.jar在运行项目之前解压库?如何使用包含本机二进制文件的库?

这是我的build.gradle

plugins {

    id "java"
    id "application"
}

repositories {

    mavenCentral()
}

dependencies {

    // https://mvnrepository.com/artifact/net.java.jinput/jinput
    compile group: 'net.java.jinput', name: 'jinput', version: '2.0.7'
}

编辑:在这里你可以看到图书馆的内容

...

4

1 回答 1

-1

是的,还有一个额外的步骤。我按照以下说明操作: JInput 入门

您在 gradle 文件中链接的 JInput 依赖项仅设置可以访问哪些方法/类的 API。这些的实际机器代码在动态链接库...DLL中,即二进制文件。

首先下载 DLL:JInput DLL 下载到一个文件夹中。

-Djava.library.path= "C:/pathToLibrary"然后,您可以使用命令行参数(或在创建需要它的类之前通过调用以下方法动态地链接到该文件夹​​的路径。

public static void setDllLibraryPath(String resourceStr) {
    try {
        System.setProperty("java.library.path", resourceStr);
        //System.setProperty("java.library.path", "/lib/x64");//for example

        Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
        fieldSysPath.setAccessible(true);
        fieldSysPath.set(null, null);//next time path is accessed, the new path will be imported
    } catch (Exception ex) {
        ex.printStackTrace();
        throw new RuntimeException(ex);
    }
}
于 2018-05-30T19:52:53.287 回答