草庐IT

motion-tracking-jni-example

全部标签

java - 如何通过 JNI 将 HashMap 从 Java 发送到 C

我有一个Object,它有一个HashMap字段。当Object传递给C时,我如何访问该字段?Object的Class具有以下字段:privateStringhello;privateMapparams=newHashMap(); 最佳答案 您问题的答案实际上归结为为什么您要传递一个Map到C而不是迭代你的Map在Java中并将内容传递给C。但是,我有什么资格质疑为什么?你问如何访问HashMap(在您提供的代码中,Map)字段?用Java为它编写一个访问器方法,并在传递容器时从C调用该访问器方法Object.下面是一些简单的示例代

java - 使用调用 API 的 JNI 内存管理

当我使用JNI方法构建一个java对象时,为了将它作为参数传递给我使用JNI调用API调用的java方法,我该如何管理它的内存?这是我正在使用的:我有一个C对象,它有一个比free()更复杂的析构函数方法。此C对象将与Java对象相关联,一旦应用程序完成了Java对象,我就不再需要C对象了。我正在像这样创建Java对象(为清楚起见省略了错误检查):c_object=c_object_create();class=(*env)->FindClass(env,"my.class.name");constructor=(*env)->GetMethodID(env,class,"","(J)

Java 编程 : Dynamic Programming on stairs example

一个人正在跑n步楼梯,一次可以走1步、2步或3步。现在编写一个程序来计算child有多少种可能的跑楼梯方式。给出的代码如下publicstaticintcountDP(intn,int[]map){if(n-1)returnmap[n];else{map[n]=countDP(n-1,map)+countDP(n-2,map)+countDP(n-3,map);returnmap[n];}}我懂C和C++,不懂JAVA。这是来自CrackingtheCoding采访书。谁能解释一下她为什么以及如何在这里使用功能图?这里的map是数组吧?我没有看到任何行将输入保存到map数组,但它如何返

java - 为什么 dtruss 不显示此 JNI 代码中的 select 系统调用?

在MacOS上调查这个JDK错误时,我遇到了我不理解的系统调用跟踪输出:Tomcatstartupfailsdueto'java.net.SocketExceptionInvalidargument'onMacOSX简短版本:在MacOS上,JDK使用select()而不是poll()。因此,如果分配了超过1024个文件描述符,我们推断NET_Timeout中的select()调用失败,导致出现带有“无效参数”消息的SocketException。但是,当我跟踪系统调用时,我没有看到select()系统调用的证据,也没有看到任何失败并设置EINVAL的调用,因此我认为这是一个潜在原因。

java - 如何在没有 Valgrind 错误的情况下调用 JNI_CreateJavaVM?

在valgrind下编译和运行以下代码时,我一直收到“Invalidwriteofsize4”错误。有没有一种调用JNI_CreateJavaVM()的简洁方法,这样valgrind就不会出错?#include#include#includeintmain(){JavaVMInitArgs*vm_args=calloc(1,sizeof(JavaVMInitArgs));JavaVM*jvm=NULL;JNIEnv*env=NULL;vm_args->version=JNI_VERSION_1_6;vm_args->nOptions=0;vm_args->options=NULL;JN

java - 在 RCP : Device is not tracking resource allocation 中泄露

我已尝试让Sleak在我的IndigoRCP应用程序上运行。我已按照thisguide上的步骤操作.IE。我已经安装了插件,将swt工具插件添加到当前插件,添加了所需的插件,修改了跟踪选项,并使用folder.addView("org.eclipse.swt.tools.views.SleakView");View确实显示了,但当我尝试使用它时,我不断收到错误“设备未跟踪资源分配”。我已经在stackoverflow中尝试过有关此事的旧问题的答案,但没有成功Sleak(SWT&RCP):Deviceisnottrackingresourceallocation(eclipse4.3)S

java - Eclipse:JVM 共享库不包含 JNI_CreateJavaVM 符号

MacOSX10.9上的Eclipse4.4.0,当我尝试运行它时JVM8发出警告:“JVM共享库“/Library/Java/JavaVirtualMachine/jdk1.8.0_20.jdk/Contents/Home/bin/.../jre/lib/server/libjvm.dylib”不包含JNI_CreateJavaVM符号”应用程序没有启动。我按照Shan的8/25说明编辑了Info.plist,但我仍然遇到同样的错误。我也从Apple的网站下载并安装了Java,但我仍然遇到同样的错误。感谢您的帮助。 最佳答案 如果

java - 将第三方 JNI 库添加到 Nexus

我目前正在使用具有jni依赖项的第3方java库“foo”。jni依赖项也使用软链接(softlink)。目录结构看起来像foo//foo.jar/libfoo.so->libfoo.so.1.0/libfoo.so.1.0如何使用软链接(softlink)打包.jar和.so,并上传到我的本地Nexus“第3方”存储库?Thereisasimilarquestion但不幸的是,提问者问的是如何部署他们可以控制和操纵的自己的项目。就我而言,我使用的是.jar和.so,所以我无法更改。提前感谢您的考虑和回复。 最佳答案 我觉得在Nex

java - 干扰器 : journaling Example

我很好奇有关日志记录步骤的干扰器最常见(或推荐)的实现。我最常见的问题是:它是如何实际实现的(通过示例)?使用JPA是否明智?通常使用什么数据库(已经使用disruptor实现项目的社区)?在(EventProcessor的)中间处理程序中使用以便保存每条消息的状态而不是在业务逻辑过程之前和之后使用是否明智?顺便说一句(对不起,我知道这与日志记录步骤无关),在事件处理程序过程中从RingBuffer中删除消息的正确方法是什么(假设消息已失效/过期并且应该被整个程序删除)。我想知道类似于DeadLetterChannel的东西模式。干杯! 最佳答案

java - Java 垃圾收集器会停止我从 JNI 调用创建的 POSIX 线程吗?

我有一个时间紧迫的应用程序,需要按设定的时间表发送UDP数据报。接收端对抖动的容忍度非常低。用javaScheduledThreadPoolExecutor实现它是不够的,因为当GC执行“停止世界”收集时,我的线程暂停,而GC执行它的工作。我想在Java中实现业务逻辑,同时在C++中使用POSIX线程实现时间关键部分(顺便说一句,native环境是Linux)。这将使我们能够节省数千行用Java编写的代码,并从native系统调用中获得我们需要的节奏。我的问题是:如果我调用创建单独POSIX线程的JNI函数,当JavaGC执行“停止世界”收集时,该线程是否会“暂停”?经验丰富的JNI大