JDK 1.3 中的 Java native 访问

标签 java dll nio jna

我正在尝试将 JNA 集成到 JDK 1.3 应用程序中。 JNA 页面有以下关于此主题的内容:

Supported on 1.4 or later JVMs (earlier VMs may work with stubbed NIO support)

我已成功通过删除所有 java.nio 引用将 JNA 源移植到 JDK 1.3。我不需要例如 java.nio.Buffer。

但是,JNA DLL 被编译为使用 Java NIO 类型并相应地提示:

JNA: Problems loading core IDs: java.nio.Buffer

我需要做什么才能使 JNA 在 JDK 1.3 中工作? “可能与 stub NIO 支持一起工作”是什么意思?

从 C 源代码中 stub NIO 并重新编译 DLL 是我唯一的选择吗?由于我根本不擅长 C 编程,所以我拼命避免它。

是否有其他方法可以在Java中调用 native DLL(不是JNI,调用的DLL是闭源的并且JNI不兼容)。

最佳答案

文档建议您编写一些假的 java.nio 类,并将它们放在 bootclasspath 上 - 然后不要使用任何需要 >java.nio。您不需要修改 JNA 源代码或编辑 native 代码。

关于JDK 1.3 中的 Java native 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6089274/

相关文章:

Java NIO MappedByteBuffer 内存溢出异常

java - SupportMapFragment 在主线程上加载并卡住界面(忽略getMapAsync)

java - Java解析定宽文本日志的技巧

java - 在Netbeans中为JNI制作DLL问题

c# - 我可以将 C DLL 的输出重定向到我的 c# log4net 输出吗

java - 为什么缓冲区还没有写入FileChannel

java - 如何测试我的 FIX 客户端?那里有我可以使用的假 FIX 交易所吗?

java - 如何在 Jython 中拦截键盘中断 (CTRL-C)?

.net - C# 项目引用设置 SpecificVersion = False 似乎不起作用

java - 使用 java nio 在 zip 内遍历文件树时出现 nosuchfileException