技术问答

问题描述 我需要将我的C ++(OPENCV项目)与Java代码(Web Service程序)集成 我可以通过使用JNI从C ++运行我的Helloworld Java代码,如下所示: import java.io.IOException; public class Main { public Main() { System.out.println("hello from no arg"); }

2023-01-20  247
技术问答

问题描述 我正在编写一个C ++程序,该程序需要能够读取复杂而深奥的文件类型.我已经有一个用于处理这些文件的Java程序,其中包括功能,将它们转换为更简单的文件格式.我的想法是,每当我的程序需要从复杂文件中读取信息,以使其调用Java方法将其转换为简单的文件类型,然后将其写入我的程序可以轻松读取的临时文件.这些文件足够小,可以接受性能.我正在QT上编写我的程序并在Windows Vista机器上运行. 我已经考虑使用Java本机界面

2023-01-20  268
技术问答

问题描述 我正在尝试使用jni使用C ++处理大量数据,但是我很难理解天气函数setArrayRegion将通过元素复制一个数组元素,或者如果它可以将数据放置在适当的位置并将其返回到呼叫Java功能. 以下文档是我一直在阅读的文档,但仍不清楚发生了什么. http://download.oracle.oracle.com/javase/javase/1.5.0/docs/guide/jni/spec/functions.html

2023-01-20  280
技术问答

问题描述 我已经剥离并取消了共享库. 如何加载符号在用LLDB中调试在Android Studio中剥离的符号? 我可以在” jnilibs”文件夹中成功调试全面的.so. 但是它太大了,部署要花太长. 在调试配置中指定符号目录不适用于Standart和”实验插件”. 推荐答案 您需要将库与” -build-id”标志联系起来,因此Android Studio中

2023-01-20  279
技术问答

问题描述 我有一个我需要在项目中使用的编译库.简而言之,它是一个与特定硬件进行交互的库.我所拥有的是.a和.dll库文件,分别用于Linux和Windows,以及一堆C ++ .H标题,其中所有公共功能和类别都描述了. 问题是该项目需要在Java中,因此我需要为此库编写JNI包装,老实说,我从来没有这样做.但这没关系,我很想学习东西. 我已经在线阅读了一堆文档,我发现了通过变量,从本机代码中创建Java对象等. 我不知道的是如何使用

2023-01-20  294
技术问答

问题描述 对于共享库的保护问题,我将尝试使用JNI获取软件包名称,但会出现错误.那么,是否可以使用JNI获取软件包名称或ApplicationID?如果有人有此问题的示例或引用,那么建议.因为没有任何好的教程或解决方案.否则任何其他方法都建议保护共享库. 推荐答案 是的,这是可能的. Android基于Linux,我们可以在内核提供的用户空间中获得很多信息. 在您的示例中,存储在此处的信息/proc/${process_id}/c

2023-01-20  282
技术问答

问题描述 我正在使用Eclipse上的我认为所有64位运行时环境.当前设置Java>已安装JRES和执行环境都指向JDK1.6.0_30,这是JDK的64位版本.但是,Eclipse仍然认为它正在运行32位版本,因为当我运行时: system.getProperty(” sun.arch.data.model”); 它返回32而不是64. 和我为64位计算机编译的外部JNI资源不会链接到共享.S

2023-01-20  247
技术问答

问题描述 是否有任何调试器可以帮助调试Java JNI程序以及C库? 我应该能够从Java的静态void main开始调试程序,然后继续调试并在本机C函数中放置断点,然后在控件从C转移到Java后继续在Java进行调试. 推荐答案 Java虚拟机调试器与本机代码调试器有很大不同.当前没有像一个和相同的调试器这样的成熟解决方案,可以从Java到本机代码和返回.虽然这是一个非常刺激的问题,使一些聪明的人试图开发这样的解决方案,但毫无疑

2023-01-20  254
技术问答

问题描述 是否可以使用JNI构建Helloworld.lib并将其加载到Java应用程序中?或者它只是与共享库一起使用? 我找不到关于JNI文档的明确答案,没有提及”静态库”. 推荐答案 它需要是动态库.幸运的是,您可以从静态库构建动态库. 其他推荐答案 Java 8支持静态链接的本机库 http://openjdk.java.net/jeps/jeps/178 其他推荐答案 要在运行时加载库,必须

2023-01-20  254
技术问答

问题描述 我可以遵循JNI教程.但是,当我更改方法名称时,我会遇到麻烦.我需要遵循命名约定吗?该教程使用Hellojni作为模块名称和库名.我使用了” useaaacom”. 推荐答案 来自 Oracle的文档: 动态链接器根据其名称解决条目.本机方法名称是从以下组件中加入的: 前缀Java_ 一个合格的班级名称 下划线(_)隔板 一个修理方法名称 对于过载的本机方法,两个下划线(__),然后是修理参数

2023-01-20  302