jni相关内容
我试图部署独立版本的hadoop 2.5.0。但Datanode无法启动。日志打印: 2014-10-20 13:42:13,288 FATAL org.apache.hadoop.hdfs.server.datanode。 DataNode:secureMain中的异常 java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.native
..
最近我试图在JNI代码中实现我的算法(使用C ++)。我这样做并生成了一个共享库。 这是我的JNI类。 public class VideoFeature { // JNI代码Begin public native static float Match(byte [] testFileBytes,byte [] tempFileBytes); static { System.
..
我开发了一个GWT应用程序,其中包含一些带有JNI的本地库。当我从eclipse测试它时,一切正常,但是当我尝试将它部署到Eclipse服务器上时,它找不到本地库。 我跟着本教程适用于JNI和Tomcat java.library.path 时,它与我启动Tomcat时得到的不同(使用 设置路径)。 解决方案最简单的答案可能是编辑Tomcat安装的 bin / startu
..
我正在开发一个Grails web应用程序,我需要使用一个JNI本地库来访问某些特定的硬件。对于一个简单的Java应用程序(见下文),它工作正常。为此,我只需将JAR添加到Java构建路径并指定“本机库位置”(我使用Windows7上的SpringSource工具套件)。 工作示例: 导入conceptacid.nativedriver.Driver; public class M
..
我有一个应用程序需要使用本地库: libfoo.so 我的代码是如下所示: Accessor.java: public class Accessor { static { String path =“/usr/lib/libfoo.so”; System.load(path); } ... } 当我在独立的tomcat服务器上部署我的war文件
..
我有两个项目 A 和 B 。 A 是主要项目,使用 B 思想依赖关系 A-> B 位于两个项目中的NDK库: p> -------------- -------------- | A | | B | -------------- -------------- | JNI库| | JNI库| -------------- --------------
..
我已成功修改了我的build.gradle以使用gradle-experimental,但试图添加一个signingConfigs块时失败。我遵循 http://tools.android.com/中的说明tech-docs / new-build-system / gradle-experimental 尽我所能,但我总是得到以下错误: 配置项目':app'时发生问题。 以下模型规则
..
错误:(62,11)我在项目中使用OpenSSL的preBuilt库,但我得到的错误是:致命错误:找不到'openssl / asn1.h'文件 错误:(62,11)致命错误:找不到'openssl / asn1.h'文件 pre> 和我的Android.mk文件在这里 Android.mk LOCAL_PATH:= $(call my-dir) inc
..
从下面的代码片段中,我尝试测试 NewGlobalRef 并在本地声明它之后尝试使 clsStr 范围块。 jstring Java_Package_LocalAndGlobalReference_returnGlobalReference (JNIEnv * env,jobject obj){ if(1){ printf(“In function make global refer
..
任何人都可以指导如何使用GDB调试器在Linux上调试JNI代码(如果可能的话,请提供其他选项)。 - 在Linux上运行时,我的JNI项目导致JVM崩溃。 - CPP代码已被编译为.so文件。 -I像这样运行项目:* java xyz.jar -commandline_args_to_project *。 我已经安装了Gdb,但没有得到我们如何使用它调试项
..
我试图创建一个简单的JNI项目来获取JNI的挂件,但我一直在遇到这个错误: 线程“main”中的异常java.lang.UnsatisfiedLinkError:HPAProgram.sayHello() I don没有太多代码,所以我可以在这里粘贴大部分代码。 我运行以下命令: javac HPAProgram.java javah HPAPro
..
我通过引用已经用JNI生成的头文件实现了以下C代码: #include #include #include“HelloWorld.h” JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv * env,jobject obj) {“Hello World! \\\ “); return; }
..
请考虑这种情况: Java和一些(昂贵的)本地资源之间存在连接,这是要映射到Java的要求。问题是关于资源的生命周期以及如何在native和java上使用这些资源,只要它们是需要的。假设我们可以根据需要使用两种方式来激活JNI连接。 规则如下: 只要包装器Java对象需要它们,资源就会保持活动状态。如果需要,可以对Java对象进行垃圾回收。 只要本地部分需要,资源就会保持活动状态
..
我正在使用JCUDA,想知道JNI对象是否足够聪明以便在垃圾收集时释放它们?我可以理解为什么这可能不适用于所有情况,但我知道它适用于我的情况,所以我的后续问题是:我该如何实现?有没有可以设置的“模式”?我需要建立一个抽象层吗?或者,答案可能是“不要尝试”,那么为什么不呢? 编辑:我指的只是通过JNI创建的本机对象,而不是Java对象。我知道所有的Java对象都被同等对待W.R.T.垃圾收集。
..
为了实现从本地代码到Java代码的回调函数,我必须使用 NewGloabRef 创建一个全局引用。从内存配置文件中,我发现一旦我调用 env-> NewGlobalRef(weak_this),即使它是播放器对象的弱引用,Player对象也会可用作根对象,我认为这将防止它被垃圾收集。 但我的理解是,弱引用不会阻止垃圾收集对象。 // java代码 播放器{ $ b $ nati
..
JNI引用说明: “本地引用在本机方法调用期间有效,它们在本机之后自动释放方法返回。 来源: http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#global_local 我有点迷失在这里,根据上面的介绍,我必须显式调用 NewGlobalRef ,并将调用返回的对象传递给 N
..
使用C ++和C#经验和一些小Java知识,我现在开始一个Java + JNI(C ++)项目(Android,如果这很重要的话)。 我有一个本地方法,它创建一些C ++类并将它作为一个Java long值(比如句柄)返回一个指针。然后从这里和那里的Java代码中调用的其他本地方法使用该句柄作为参数对此类执行一些本机操作。 C ++方面不拥有这个对象,它是Java方面的。但在当前的架构设
..
尽管我尽最大努力在使用结束时清理JNI对象以释放本地内存,但仍有一些长期存在,浪费系统本地内存。 有没有办法强制GC优先收集这些JNI代理? 我的意思是说有一种方法可以使GC集中精力一种特殊的对象,即JNI代理? 感谢。 解决方案 如果您正在讨论在本机代码中分配的内存(以及扩展名为句柄),那么它不在JVM的垃圾收集器的权限范围之内 - 没有办法做到这一点,所以您是独立的。
..
项目:Java,JNI(C ++),Android。 我将通过创建托管包装类来管理本机C ++对象的生命周期,指向本地对象的指针(作为一个长成员),并将在其重写的finalize()方法中删除本地对象。有关详细信息,请参见此问题。 C ++对象不会占用其他类型的资源,只会占用内存。该对象的内存占用不是非常高,但它实质上高于Java中的64位长。有没有什么办法可以告诉Java的GC,我的
..
我使用的是Tomcat,在停止我的web应用程序之后,仍然有对我的web应用程序的类加载器实例的引用。 结果是,大量的内存(主要与静态数据有关)不会被释放。迟早会导致 OutOfMemoryError 。 我花了一个堆转储 code>,我意识到它由 JNI全局引用 ,防止类加载器将 垃圾回收 。 我的应用程序不使用JNI 。我也没有使用 Apache Tomcat原生库。我正在使用S
..