技术问答

问题描述 我正在尝试使用SWIG 1.3在Java中实现一些C代码.现在我 必须将一些现有的C重建为Java代码并提供功能 指向java函数到C方法. C代码: net.c: void register_message_handler( context_t *ctx, message_handler_t handler) { context->msg_handler = (void (*)( void *, coap_que

2023-01-20  261
技术问答

问题描述 我的Java应用程序使用JNI调用用C的库.此本机库将错误记录到STDERR,但我想以某种方式通过我的log4j logger重定向错误流.这可能吗? c库是外部的 – 我没有源,所以不能更改它. 谢谢 推荐答案 注意:我没有尝试过此答案; YMMV. POSIX方法freopen将更改与流相关联的基础文件.正如该手册所述:” freopen()函数的主要用途是更改与标准文本流相关的文件(std

2023-01-20  321
技术问答

问题描述 每次我使用java.exe时,都会有这样的警告: PowerShell > java -version [0.052s][warning][jni,resolve] Re-registering of platform native method: java.lang.PanwHooks.NativeMethodEntry(Ljava/lang/Object;ILjava/lang/Object;Ljava/lang

2023-01-20  337
技术问答

问题描述 我们有这个加载本机库的应用程序,该库提供了 本机方法供我们致电.在某些手机上(尤其是较慢的手机 ),这会导致问题.每当每当 (我认为)库仍在”加载”,方法称为 过早. 有没有办法处理此问题?就像检查库是否已经加载. 推荐答案 即使在较慢的设备上,对System.loadLibrary()的调用也很快;但是,如果您的应用程序运行多线程,或者仅根据某些UI事件响应静态构造函数的类,那么可能会有种族条件

2023-01-20  262
技术问答

问题描述 我刚开始学习JNI.我一直在遵循一个简单的示例,并且创建了一个Java应用程序,该应用在本机库中调用Hello World方法.我想瞄准Win32和Linux X86. 我的库位于DLL中,当将DLL添加到我的Eclipse项目的根部时,我可以使用LoadLibrary称其为正常. 但是,我不知道如何使Eclipse导出一个可运行的JAR,其中包括DLL和Linux的.SO文件. 所以我的问题基本上是;您将如何在Ecli

2023-01-20  316
技术问答

问题描述 这就是我到目前为止的: 我通过一个具有2个字段的对象:字符串和整数作为参数 我想发送信息以在C部分进行处理,这在这一点上并不重要… 我在JSTRING声明中受到抱怨 JNIEXPORT jint JNICALL Java_Tier3_NativeMethods_totalPalletsIn( JNIEnv *env, jclass cls, jobject stat) { jclass

2023-01-20  295
技术问答

问题描述 任何人都知道从哪里进行编译. 我尝试使用Android NDK手动在Windows-7上手动编译FFMPEG 但从未成功. 所以我认为最好使用预编译的lib,因为我已经使用了与以下相同的技术相同的技术: https://github.com/guardianproject/guardianproject/sscvideoproto 但是这个项目中的ffmpeg lib很旧. 任何帮助都非常感谢…R

2023-01-20  270
技术问答

问题描述 我有一个二进制文件,可以通过JNI呼唤Java.我将Class Path设置为Syedir/*以拾取某种程度的所有罐子. 当我运行二进制文件时,找不到所需的类定义.当我运行 时 java that.class's.name 从同一命令行中,该类成功找到.如果我将某种程度的所有罐子明确地添加到classPath中,一切都很好,但是我想避免使用非常 long class Pather. 通过JNI执行了JNI荣誉公寓的通配符

2023-01-20  261
技术问答

问题描述 我试图从C ++的Java方法中传递一个字符串.我无法找出我应该打电话给访问该方法的JNI功能并返回JSTRing值的功能. 我的代码如下: C ++零件 main() { jclass cls; jmethodID mid; jstring rv; /** ... omitted code ... */ cls = env->FindClass("ClassifierWr

2023-01-20  285
技术问答

问题描述 我有两个问题: 如果我有JNI调用方法,而JNI方法泄漏了内存.此方法完成后,JVM垃圾收集器将能够收回该内存.我听说JVM无法管理JNI使用的堆空间吗?但是JNI使用的内存是Java进程使用的内存的一部分? 使用JNI实现IPC是绝对必要的吗?其他流行的Java技术是什么,或者有开源库可以在Java中获得共享内存? 推荐答案 否:” JNI框架不提供任何自动垃圾收集,用于通过在本机侧执行的代码分

2023-01-20  330