草庐IT

hello-jni

全部标签

java - 如何在 Android NDK 上使用 JNI 在 C 和 Java 之间传递复杂结构

我的Android应用程序的C代码中有一个复杂的结构,我想在Java端使用它。我用谷歌和stackoverflow做了一些研究,所以我从我的C结构创建了java类,但现在如何在Java中获取它。我找到了这些信息,关于在类中创建指针并在C端使用它:GetthefieldID:(*env)->GetFieldID(...)Getthepointer:(*env)->GetLongField(...)Setthepointer:(*env)->SetLongField(...)但我不明白它到底是如何工作的......在上面,您可以找到我到目前为止所做的事情……没那么多!在C端:Complex

Java JNI : Creating a Swing Window using JNI from C

我正在使用JNI调用一个静态java方法,该方法又创建一个SwingJFrame并显示它。代码相当简单,Java代码独立运行(即javaStartAWT做它应该做的事),而当使用JNI从C调用时,进程挂起。我在MacOSX10.8MountainLion上使用JDK1.7.0_09。这是我用来调用静态方法的C代码:JavaVM*jvm;JNIEnv*env=create_vm(&jvm);jclassclass=(*env)->FindClass(env,"StartAWT");jmethodIDmethod=(*env)->GetStaticMethodID(env,class,"r

java - SimplexSolver 的 Hello World 示例

我正在尝试使用ApacheCommons解决优化问题。我找到了一个“HelloWorld”示例here对于CommonsMath2。但是,我想使用CommonsMath3.2,但我找不到任何关于如何使用这部分代码的示例:PointValuePairsolution=null;SimplexSolversolver=newSimplexSolver();solution=solver.optimize(optData);具体来说,我不知道什么是optData以及我将约束放在哪里。如果有人指出一个如何使用org.apache.commons.math3.optim库的“HelloWorld

java - 通过 JNI 在 C 和 Java 之间传递指针

按照@tulskiy在这篇文章PassingpointersbetweenCandJavathroughJNI中的建议,我一直在通过JNI在Java中存储c指针。诀窍是将指针转换为jlong​​。所以从c我有return(jlong​​)ptr;我要返回一个jlong​​(总是64位),因为我希望我的代码在64位和32位系统上都能工作。64位计算机上64位指针在内存中的大小为64位,而在32位计算机上,指针在内存中的大小为32位。问题是在32位机器上我收到编译器警告“从不同大小的指针转换为整数”。如果我有,警告就会消失return(jlong​​)(int32_t)ptr;但是这段代码

java - 来自 JNI_CreateJavaVM (jvm.dll) 的异常 0xC0000005

我正在使用以下C++代码初始化JavaVM。JNI_CreateJavaVM抛出一个0xC0000005异常,但如果我忽略它仍然会成功。'Jni.exe'(Win32):Loaded'C:\Tools\Java\Jdk8.77x86\jre\bin\zip.dll'.CannotfindoropenthePDBfile.Exceptionthrownat0x02900282inJni.exe:0xC0000005:Accessviolationreadinglocation0x00000000.'Jni.exe'(Win32):Loaded'C:\Windows\SysWOW64\sh

c++ - 如何用c/c++创建一个hello world云计算应用程序

有人知道这么简单的helloworld应用程序吗? 最佳答案 http://www.zircomp.com/sites/default/files/doxygen/znet_5.0/group__js__tutorial.html这正是分布式计算的“helloworld”,本教程背后的想法是专注于多核和分布式核心编程的简单性和统一性。云只是另一种硬件产品,只要您的应用程序可以变得灵活它非常适合云。 关于c++-如何用c/c++创建一个helloworld云计算应用程序,我们在StackO

java - JNI : Overhead of holding Java object references within the native code?

我正在研究通过JNI将JRE集成到C++应用程序中。在C++应用程序中持有对Java对象的大量引用(JNI术语中的全局引用)的开销是多少?使用这种方法我应该注意什么问题(除了显而易见的问题,例如手动取消分配引用)吗? 最佳答案 (a)开销与从Java执行时一样。您正在阻止对象被垃圾收集。(b)在JNI调用中持有对象引用对JVM来说可能是致命的,除非你做得正确。您需要仔细阅读JNI规范中有关全局和本地引用的部分。您还需要考虑使用弱引用而不是全局引用。 关于java-JNI:Overhead

c++ - 使用 gyp 的 V8 的 Hello World 示例

由于SCons已被弃用。我使用gyp生成vs解决方案。我按照他们在构建时告诉我的做了BuildingWithGYP.并且v8项目构建正常!我得到了v8_base.lib但没有v8.lib。在helloworld项目中,getstarted.我将lib目录添加到添加库中。但链接失败:正在链接...1>v8test.obj:errorLNK2019:unresolvedexternalsymbol"public:__thiscallv8::HandleScope::~HandleScope(void)"(??1HandleScope@v8@@QAE@XZ)referencedinfunct

读人工不智能:计算机如何误解世界笔记02_Hello,world

1. Hello,world1.1. “Hello,world”是布赖恩·克尼汉和丹尼斯·里奇于1978年出版的经典著作《C程序设计语言》中的第一个编程项目1.2. 贝尔实验室可以说是现代计算机科学界中的智库,地位好比巧克力界的好时巧克力1.3. 计算机科学界的大量创新都起源于贝尔实验室1.3.1. 激光、微波和Unix系统1.4. 要了解计算机不能做什么,我们需要先了解计算机擅长什么,以及它的工作原理1.5. 了解这些技术背后的知识是非常重要的,因为这能让你在使用电脑时预料到哪些问题会出现,它们如何出现、为何出现,以及在哪里出现1.5.1. 实际上你就是在跟一个由人类编写的程序进行互动而已1

java - 带有 C++ 的 JNI 在 cout、printf 和方法调用上不断崩溃

我正在用C++编写我的第一个JNI程序,并制作了一些测试方法以确保一切正常。问题是:当我调用方法测试时,它给出的结果波动很大。有时它会永远运行,有时我会遇到构建错误,有时我会收到fatalerror和错误消息。这不仅发生在printf和std::cout上,而且发生在方法调用上(然后我总是遇到fatalerror。我没有在问题中包含一个例子)。我看不到错误。希望得到一些帮助。我目前使用g++作为编译器,还有其他选项:-D__int64=int64_t。Java类:publicclassJNI{publicstaticnativeinttest();publicstaticnativei