问题标签 [jnaerator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1266 浏览

java - JNA 我如何从 C int* 转到 JNA 结构

我有以下 C 代码,我试图将其映射到 java 中:

消息结构的 JNA 等效项是:

我知道他们在 C 代码中做了什么,但我不知道如何在 Java 端做到这一点。我需要让 Java 消息类包含传入的参数的长度和数组

请帮忙!

更新:我创建了自己的包含字节 [] 的消息结构副本:

我将尝试将这个结构传递给另一个结构,但我要到明天才能测试。

0 投票
1 回答
2280 浏览

java - 如何在一个标头下将 JNAerator 与多个动态库一起使用?

我正在使用 JNAerator 生成可以包含在项目中的单个 jar 文件,并且我想支持每个操作系统的动态库并将所有内容都归档在这个单个 jar 中。

到目前为止,在摆弄 JNAerator 时,我已经能够使用如下命令包含一个动态库:

但是,这只是 packages test.dll,而我有多个系统的动态库(test_win32.dlltest_win64.dlllibtest_mac.dyliblibtest_linux_x86.solibtest_linux_amd64.so),我希望它们都打包到一个 jar 中并由一个 jar 支持。

有没有办法通过一次运行 JNAerator 来执行这种“一体化”方法,或者我必须为每个平台生成不同的 jar 文件?

0 投票
1 回答
424 浏览

jna - How to re-build jna-4.1.0.jar with linux-s390x specific libjnidispatch.so

How can I rebuild jna-4.1.0.jar file to include the linux-s390x specific libjnidispatch.so file.

This is needed by one of my application and failing on the dependency of this libjnidispatch.so file.

Did try to follow this question: How to use JNAerator with multiple dynamic libraries under one header?

Syntax Used:

Getting below error:

0 投票
0 回答
400 浏览

java - 如何使用 Bridj 在 Java 中使用 C 代码

我是 Java 新手,我正在尝试在 Raspberry pi B+(armv6l) 上使用 Bridj 在 Java 中使用示例“Hello world”C 函数。我下载了 Bridj 源代码并使用 maven 安装它。然后我下载了 JNAerator 并从我的 C 代码中生成了一个 java 代码。现在我如何在我的java代码中使用这个生成的java。我还有一个 .so 库(C 二进制文件),我想在 java 中使用我尝试将这个 .so 放在 org/bridj/lib/linux_armhf/ 路径中,并尝试在我的代码中使用它,但它通过'sementation fault'。有人可以帮我解决这个问题。Bridj 也支持 RPI B+ 或者我应该使用 dyncall 来支持它。我没有 GUI,我在命令行上工作。

为了从 CI 中生成 java 代码,我正在使用:

用于编译我的 java 代码:

0 投票
1 回答
368 浏览

java - 如何在 sbt 项目中使用 jnaerator

我使用 sbt 处理使用 c++ 代码的 Scala 项目。编译后,此 c++ 代码通过使用 jna 的 Java 代码导入 Scala。

现在,目前 Java 包装器是手动编写的,我喜欢将其自动化。我找到了可以做到这一点的 jnaerator,但我不知道我应该如何在 sbt 中使用它。

我看到两种一般方法:

  1. 使用命令行,例如,java -jar jnaerator ...但我不知道如何在 sbt 中设置这样的命令行任务?另外,我需要知道要遵循的典型项目结构:在哪里输出 jna 生成的代码?
  2. 如果可能的话,通过 sbt 使用 jnaerator maven 插件?
0 投票
1 回答
809 浏览

c++ - Java JNI 包装工具

我正在尝试生成能够调用由 DLL 文件实现的某些 C++ 头文件(*.h 扩展名)文件中提供的函数的 java 代码。

我已经尝试过 cxxwrap 并且我得到了所有没有编译错误的 java 类,但并非所有方法都生成了。还尝试了 JNAerator,尽管生成了所有方法,但我得到了很多编译错误。

有人可以就这个问题给我一些建议吗?

谢谢

0 投票
1 回答
275 浏览

java - 如何在使用 JNA 的本机方法返回的结构化中映射可变长度数组

我有一个结构,其中包含一组其他结构指针,以及一个用于数组长度的字段。此结构由本机方法通过“out”参数返回。

原来的“C”结构:

JNAerator生成的对应Java类:

“C”方法签名:

Java用法:

这会生成一条 JNA 错误消息,指出“必须初始化数组字段”。

目前我正在使用Pointer代替数组并从中手动构建数组:

随着用法:

但是这种方法似乎不能令人满意,因为它很冗长,而且因为使用的是指针而不是实际的结构类型。

那么用 JNA 处理这个问题的规范方法是什么?

0 投票
0 回答
174 浏览

java - java.lang.UnsatisfiedLinkError 将 C++ 函数映射到 JNA

我必须将本机 C++ 库映射到 JNA,这是库头:

这是我用 JNAeator 制作的映射:

这是 DependencyWalker 找到的导出函数:

(装饰) 在此处输入图像描述 (未装饰) 在此处输入图像描述

当我尝试使用此配置运行测试时,我得到:

线程“主”java.lang.UnsatisfiedLinkError 中的异常:查找函数“worm_readData”时出错

为什么 JNA 找不到函数名称?

0 投票
0 回答
266 浏览

java - Mac OSX下使用JNAerator访问库

如果我使用库的标头运行 JNAerator,则该过程会占用处理器时间并且似乎永远不会完成 - 在第一次发出警告之后:

所以,我也尝试了 -ScanSymbols 选项:

out.jar 有很多 .class 文件,但没有 .java,我不知道如何使用它。

按照wiki中的建议使用 -noComp -noJar 根本不会产生任何输出......

我究竟做错了什么?或者这是一个没有希望的案例?

0 投票
1 回答
9177 浏览

java - 线程“main”java.lang.Error 中的 JNA 异常:无效的内存访问(未知来源)

我正在使用 JNA 4.0.0 从 Java 访问一些 DLL 函数,这个 DLL Native Function 声明如下:

输入参数的类型描述如下

因此,我在库接口中声明它如下:

然后我用以下方式调用它:

但我得到以下异常:

请帮助并感谢您的关注!