草庐IT

concrypt_openjdk_jni

全部标签

java - 在包含下划线的 Android 包名称中调用 JNI 函数

我正在尝试按照以下指南使用LAME库在Android中实现MP3编码:LameMP3EncodercompileforAndroidhttp://developer.samsung.com/android/technical-docs/Porting-and-using-LAME-MP3-on-Android-with-JNI但是我得到一个java.lang.UnsatisfiedLinkError,我认为这可能是因为我的包名包含一个下划线,它被解释为一个句号。看看我下面的代码,这可能是这个问题,我该如何解决这个问题。还是有其他原因导致这种情况。提前感谢您的帮助。Record.java

java - 使用 JNI 从 Java 代码中检索字符串值的内存泄漏

我正在使用GetStringUTFChars使用JNI从Java代码中检索字符串的值,并使用ReleaseStringUTFChars释放该字符串。当代码在JRE1.4上运行时,没有内存泄漏,但如果相同的代码在JRE1.5或更高版本上运行,内存会增加。这是部分代码msg_id=(*env)->GetStringUTFChars(env,msgid,NULL);opcdata_set_str(opc_msg_id,OPCDATA_MSGID,msg_id);(*env)->ReleaseStringUTFChars(env,msgid,msg_id);我无法理解泄漏的原因。有人可以帮忙吗

java - 如何开始使用 Oracle 的 Nashorn JS 引擎进行编码,它何时会取代 OpenJDK 中的 Rhino?

我正在寻找一种方法来开始使用Oracle的新NashornJavaScript引擎。我已经对最新的OpenJDK8(b65)进行了深度学习,看来Rhino仍然是唯一包含的脚本引擎。有人知道Nashorn何时(或在哪个版本中)将取代OpenJDK中的Rhino?或者更好的是,我在哪里可以获得已经包含它的JDK?我知道Netbeans已经编写了一个调试器来使用它,只是不确定他们从哪里得到库/代码来开始编写它。谁有链接?谢谢。 最佳答案 OpenJDK上似乎还没有Nashorn的迹象。JimLaskey在2012年10月的最新评论表明20

java - 将字符串从 Java 传递到 JNI

我想将一个字符串传递给我正在编写的JNI,它必须分配给一个constchar*。下面提到的是我是如何做到的:JNI...(...,jstringjstr...){constchar*str=env->GetStringUTFChars(jstr,0);env->ReleaseStringUTFChars(str,jstr,0);}但是,如果我在分配给jstring之后printfconstchar*str与我直接在JNI中分配str值并从那里分配printf时相比,我看到的是不同的。这是正确的做法吗?或者有没有其他方法可以将java中的字符串分配给JNI中的constchar*?

java - 安卓ndk : Problem for call of Java method from c++ with jni

我尝试在AndroidNDK上工作,我的第一次测试不是很确定,我需要帮助,因为我看不出我的错误在哪里。以下代码编译没有问题,但在模拟器上运行时,程序返回SIGSEGV信号,并且logcat中没有显式写入错误。但是,会出现指示找不到Java类的警告。经过一天对这个问题的研究,一切看起来都是正确的。这是我的Java代码:JNITestActivity.javapackagecom.test.jnitest;importandroid.app.Activity;importandroid.os.Bundle;importandroid.util.Log;publicclassJNITestA

java - 是否可以在没有 JNI 的情况下使用 sun.misc.Unsafe 调用 C 函数?

一段C/C++代码可以提供一个带有函数指针数组的JNI方法。但是有没有办法直接从Java代码内部(不使用JNI或类似的)调用数组指针指向的函数堆栈?JNI不知何故做了类似的事情,所以一定有办法。JNI是如何做到的?是通过sun.misc.Unsafe吗?即使不是,我们是否可以使用一些不安全的解决方法来获取执行此操作的JVM代码?我当然不打算将其用于商业用途。我什至不是专业人士,我只是真的很喜欢编码,而且我最近一直在研究CUDA,所以我想也许我可以尝试将所有东西混合在一起,但是JNI调用的开销会破坏使用GPU加速代码的目的。 最佳答案

java - 通过 JNI 从不同的线程调用保存的 java 对象

我有一个java对象,它通过JNI调用一个C++共享对象。在C++中,我保存了对JNIEnv和jObject的引用。JavaVM*jvm;JNIEnv*myEnv;jobjectmyobj;JNIEXPORTvoidJNICALLJava_org_api_init(JNIEnv*env,jobjectjObj){myEnv=env;myobj=jObj;}我还有一个GLSurface渲染器,它最终在另一个线程GLThread上调用上面提到的C++共享对象。然后我尝试使用我最初保存的作业对象回调我的原始Java对象,但是我认为因为我在GLThread上,所以我收到以下错误。W/dalvi

java - Amazon Corretto 和 OpenJDK 的区别

AmazonCorretto和OpenJDK(和Oracle'sOpenJDK-但已经有一张关于this的票)之间有什么区别?Corretto是OpenJDK版本8的实现。两者都是免费的,并且似乎可以在大多数系统(Linux、MacOS和Windows)上运行。到目前为止,Corretto仅处于预览阶段,但很快就会改变。Corretto的documentation并没有说太多关于差异的内容。是否有差异?性能,垃圾收集?为什么我更喜欢其中之一?您会在AWS之外使用Corretto吗? 最佳答案 来自Amazon'sdescriptio

java - JNI - 在 Java 和 native 代码之间传递大量数据

我正在努力实现以下目标:1)我在java端有一个代表图像的字节数组。2)我需要让我的native代码访问它。3)native代码使用GraphicsMagick解码此图像并通过调用resize创建一堆缩略图。它还计算图像的感知散列,可以是vector或unint8_t数组。4)一旦我将此数据返回到Java端,不同的线程将读取它。缩略图将通过HTTP上传到一些外部存储服务。我的问题是:1)将字节从Java传递到我的native代码的最有效方法是什么?我可以作为字节数组访问它。我看不出将它作为字节缓冲区(包装此字节数组)与此处的字节数组相比有什么特别的优势。2)将这些缩略图和感知散列返回到

java - JNI - 如何从 C++ 或 C 回调到 Java?

我有调用nativeC++/C代码的Java应用程序。C++/C代码需要回调到Java。你能给我一些例子吗? 最佳答案 有许多有效的方法可以从C/C++回调到Java。我将向您展示一种使用C的技术(易于为C++调整env),它可以相当容易地将数据从native代码传递到Java代码。此示例传递字符串(易于修改任何数据类型)。在native代码中,创建以下内容://GlobalsstaticjmethodIDmidStr;staticchar*sigStr="(Ljava/lang/String;ILjava/lang/String;