java-native-interface相关内容

JVMTI - 如何从回调中获取方法参数的值

感谢 JVMTI 代理,我正在记录我的 Java 应用程序中的所有方法条目.目前,我能够获取每个方法的名称,但我希望能够获取该方法接收到的参数的值. 这个问题已经在较早的主题中讨论过(请参阅 如何在 MethodEntry 回调中获取参数值);它完全符合我的要求,所以我知道我必须使用 GetLocalObject 函数,但我不知道如何使用(主题中给出的示例已损坏). 谁能帮我找出如何做 ..
发布时间:2022-01-25 21:45:20 Java开发

如何将java函数指针传递给c++本机代码

我想从 java (android) 代码中调用原生 c++ 方法,并将 java 函数作为参数传递,这样我就可以将函数指针保存在 c++ 代码中,并从原生代码中激活它. 我选择使用匿名类在java中实现函数指针,并从java中调用native函数如下: 接口 FunctionPtrHelper {布尔函数(字符串参数); } NativeFunc(param1,param2,new ..
发布时间:2022-01-25 21:44:46 Java开发

JNI 与 Runtime.exec()

我有两个选择 - 我可以使用 JNI 或使用 Runtime.exec 来执行 C++ 库. C++ 程序占用大量 CPU 资源且运行时间较长,即某些调用可能需要几个小时才能返回. 各有什么优缺点?我应该采用哪种方法? 解决方案 如果需要与 C++ 库交互,请选择 JNI. 如果它是您只想调用的独立程序(也许还想获取输出),Runtime.exec() 会简单得多. ..
发布时间:2022-01-25 21:44:30 Java开发

将 JNI 对象作为引用指针访问到 Java 层

我正在编写一个与 JNI 调用有很大关系的应用程序,并且每次我必须执行 getter() 调用来访问变量值.而是可以访问 Java 层上的 JNI 对象的 Object reference,以便仅通过变量名(如 obj.name而是 obj.getName()). 我已检查 this 和 this,但不知道如何在java层将地址转换为Object. 编辑我想从 JNI 在 Java 层 ..
发布时间:2022-01-25 21:43:08 Java开发

如何在 Java + JNI + C++ 进程中查找内存泄漏

我有一个用 Java 编写的项目,它使用 JNI 使用 C++ 库.所有的代码都是我们写的,所以我有所有的源代码. 几个小时后机器内存不足,尽管我的进程只是遍历文件并且删除了与前一个文件有关的所有内存. 我确定有内存泄漏,通常我使用Valgrind,但似乎他不能很好地处理Java并且认为JVM正在泄漏,即使对于“hello world"java项目也是如此. 我已经使用单元测试测 ..
发布时间:2022-01-25 21:42:50 Java开发

使用 JNI 时 C 文件的 eclipse 行为令人惊讶,为什么会这样?

我正在开发一个使用大量 JNI 代码的 Android 应用程序.最近(从过去的 2-3 天开始,我对 eclipse 的意外行为感到非常恼火)只要我打开我的 .c,它就会向我显示模糊的错误文件...但是,如果我关闭并重新打开项目,错误就会消失.请参阅随附的屏幕截图.是不是因为我刚刚更新了我的eclipse安装(只是更新了eclipse插件,我还在我的旧Indigo上)... 这是一个 ec ..
发布时间:2022-01-25 21:42:40 Java开发

使用 JAVA JNI 和 C++ 进行通用调用

我正在使用 JNI,我必须将一些泛型类型传递给 C++.我不知道如何在 C++ 方面解决这个问题 HashMap 我是 JNI 的新手,环顾四周,但找不到太多帮助.有人可以帮助我如何为此编写 JNI 代码.任何参考网络上的材料都会非常有帮助. 解决方案 简答:你不能. 长答案:键入擦除:http://download.oracle.com/javase/tutorial/java ..
发布时间:2022-01-25 21:41:45 Java开发

JNI:在路径上找到库,但未找到方法 (java.lang.UnsatisfiedLinkError)

我正在尝试使用 JNI 并得到 java.lang.UnsatisfiedLinkError.与其他有关此问题的数百万个问题不同,我的路径上有这个库,甚至在我删除它时也看到了异常变化.我确定我创建的 dll 有问题,但我不确定是什么问题. 这是我的java类代码: 包com;公共类调{静止的 {System.loadLibrary("lala");}公共静态无效主要(字符串[]参数){调 ..

从 Eclipse 查看本机代码

我有一个使用本地方法调用的 java 应用程序.有没有办法在 eclipse 中查看此代码?我可以得到这个本机库的源代码,但不知道如何在 IDE 中链接.如果有人告诉我如何调试这个本机方法也会很有帮助. 解决方案 不是一个完整的答案,但 Eclipse 确实有 C/C++ IDE 功能 这里有一些信息(虽然看起来有点过时):关于 CDT/JDT 集成的信息 从 Eclipse ..
发布时间:2022-01-25 21:40:17 Java开发

使用 JNI 时出现 UnsatisfiedLinkError?

我想在 linux ubuntu 中使用 JNI 从 Java 程序调用 C 程序. 我是新手,我已经尝试过 http://www.ibm.com/developerworks/java/tutorials/j-jni/section2.html.我已经创建了 .java、.h、.c 和 .so 文件.但是当我尝试运行该程序时,出现以下错误. 线程“主"java.lang.Unsatisf ..
发布时间:2022-01-25 21:40:09 Java开发

可以让 JNI 支持类路径中的通配符扩展吗?

我有一个通过 JNI 调用 Java 的 C 二进制文件.我将 CLASSPATH 设置为 somedir/* 以获取 somedir 中的所有 jar. 当我运行二进制文件时,找不到所需的类定义.当我跑步时 java that.class's.name 在同一命令行中,已成功找到该类.如果我将 somedir/中的所有 jar 显式添加到类路径中,一切都会很好,但这会导致我想避免的 v ..
发布时间:2022-01-25 21:39:54 Java开发

在 Mac OS X 上加载 JNI 库?

背景 所以我试图在 Mac OS 上将 jnilib(特别是 JOGL)加载到 Java 中X 在运行时.我一直在关注相关的 Stack Overflow 问题: Maven 和 JOGL 库 在 Java - Eclipse - JNI 中加载 DLL 如何制作一个包含所有jar文件的jar文件 我的最终目标是将特定于平台的 JOGL 文件打包到 JAR 中,然后将它们解压 ..
发布时间:2022-01-25 21:39:45 Java开发

Android ndk(cmake):在第二个 jni 库中使用 log api 时,'未定义的引用`__android_log_write'

我使用 Android Studio 2.2 和 cmake 构建 jni 文件. 我想在 jni 文件中显示日志,但收到错误消息“未定义对 `__android_log_write 的引用". 我的 CMakeLists.txt 文件是: add_library( # 设置库的名称.本机库# 将库设置为共享库.共享# 提供源文件的相对路径.# 与它们的源在同一位置的相关标题# 文件 ..
发布时间:2022-01-25 21:39:24 移动开发

在 ... 中未找到 JNI_OnLoad 正在跳过初始化

我在过去一天左右一直收到此消息,直到现在它还没有造成问题.我早些时候让我的代码与我的本机库一起运行,但今天我添加了一些新函数,但它再次不起作用. LogCat 中没有显示错误,但我的程序只是在我的设备上立即打开和关闭.没有消息说应用程序已意外停止,只是屏幕上出现黑色闪烁. 我查看了 google 和 SO,但出现此消息的原因有很多.这是我的 LogCat: 08-03 10:44:5 ..
发布时间:2022-01-25 21:39:17 移动开发