无法开始使用JNA

时间:2019-09-27 23:32:01

标签: jna

我刚刚在Win10 x64上安装了Apache NetBeans IDE 11.1,JDK 13,openjfx-13和JNA-platform-5.4.0。我无法使用JNA达到一垒。以下代码在com.sun.jna.Native的import语句中将Native标记为未知符号。直接从https://github.com/java-native-access/jna/blob/master/www/GettingStarted.md

调用Native.load和import语句

此屏幕快照显示了项目库列表1

package jrailroad;

import com.sun.javafx.PlatformUtil;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.Kernel32Util;
import com.sun.jna.Native;

public class ComPort
{                           // class ComPort
public int os;

public static final int OS_WINDOWS = 0;     // a Windows platform
public Kernel32 k32 = null;

ComPort()
    {                       // ComPort.ComPort
    os = -1;
    if (PlatformUtil.isWindows())
        {                   // windows
        os = OS_WINDOWS;
        k32 = (Kernel32) Native.load("kernel32", Kernel32.class);
        }                   // windows
    }                       // ComPort.ComPort
}                           // class ComPort

1 个答案:

答案 0 :(得分:1)

作为您发布的Getting Started链接,

  

Java本机访问(JNA)具有单个组件jna.jar;的   jar文件中包含支持本机库(jnidispatch)的文件。   ...首先下载最新版本的JNA并进行引用   项目的CLASSPATH中的jna.jar。

您没有包括jna.jar,而是包括了用户提供的到各种平台jna-platform.jar的映射。 link you noted in your comment包含两个文件的链接:

  

JNA

     

jna-5.4.0.jar

     

这是JNA的核心工件,仅包含绑定库   和核心帮助程序类。

     

JNA平台

     

jna-platform-5.4.0.jar

     

此工件保存跨平台映射和多个映射   常用平台功能,包括大量的Win32   映射以及一组简化本机的实用程序类   访问。

并且如注释中所述,当依赖项本身具有依赖项时,手动包含jar文件会很快变得不可持续。您应该学习如何使用软件包管理器,例如Maven,Gradle或Ivy。您的IDE会为此提供一个过程,只需搜索“ netbeans maven”即可获得更多指导。