jna - 无法开始使用 JNA
问题描述
我刚刚在 Win10 x64 上安装了 Apache NetBeans IDE 11.1、JDK 13、openjfx-13 和 JNA-platform-5.4.0。我无法使用 JNA 到达一垒。以下代码在 com.sun.jna.Native 的导入语句中将 Native 标记为未知符号。对 Native.load 的调用和导入语句直接取自https://github.com/java-native-access/jna/blob/master/www/GettingStarted.md
此屏幕截图显示项目库列表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
解决方案
正如您发布的入门链接所述,
Java Native Access (JNA) 有一个组件 jna.jar;支持的本机库 (jnidispatch) 包含在 jar 文件中。... 首先下载最新版本的 JNA 并在项目的 CLASSPATH 中引用 jna.jar。
您没有包括jna.jar
,而是将用户贡献的映射包括到各种平台,jna-platform.jar
. 您在评论中提到的链接包括指向这两个文件的链接:
JNA
jna-5.4.0.jar
这是 JNA 的核心工件,仅包含绑定库和核心帮助程序类。
JNA平台
jna-平台-5.4.0.jar
该工件包含跨平台映射和许多常用平台功能的映射,包括大量 Win32 映射以及一组简化本机访问的实用程序类。
正如评论中提到的,jar
当您的依赖项本身具有依赖项时,手动包含文件很快就会变得不可持续。您应该学习如何使用包管理器,例如 Maven、Gradle 或 Ivy。您的 IDE 对此有一个流程,只需搜索“netbeans maven”即可获得更多指导。
推荐阅读
- php - 数据表:是否可以使用 Ajax 填充 2 列并为其他列使用不同的方式?
- excel - 在下载之前测试 URLDownloadToFile 文件大小以识别不存在的文件
- arrays - 通过重复第一行两次并将其堆叠到前面来扩展数组
- php - 如何突出显示根据表值显示的记录?
- email - 使用 Office 365 发送邮件时 SPF 失败
- javascript - 移动版 Firefox 点击并按住事件
- python - Debian 中的 Python 自动安装脚本
- javascript - Vue-router 不能延迟加载子组件
- sql-server - 将列动态分组到范围中
- c++ - QVTKWidget 已在 VTK 8.1 中弃用,并将在未来版本中删除