jni相关内容

NewStringUTF()和释放内存

我是否应该将分配的字符串传递给 NewStringUTF()? 我有一些相似的代码to: char * test; jstring j_test; test = some_function(); // NewStringUTF(env,test); 免费(测试); // ..
发布时间:2018-12-10 22:38:51 Java开发

使用Java Native Interface的缺点

我无法获得使用JNI的这两个缺点。我想了解更多关于它们的信息: 难以在 本机代码中调试运行时错误 JNI代码中的错误会占用整个JVM,并且不提供任何正常恢复机制 解决方案 难以调试 你需要一个C / C ++调试器来调试本机代码。不可能轻易地从Java转向C / C ++代码。 (尽管可以同时调试它们。我已经用Eclipse和CDT插件完成了它,但这很痛苦) JN ..
发布时间:2018-12-10 22:29:46 Java开发

让Java和TWAIN很好地一起玩

我正在构建一个应用程序,可以直接从TWAIN扫描程序扫描到Java applet。我已经知道 Morena 和 JTwain ,但他们花钱。我需要自由。我可以用JNI重新发明轮子,但似乎有人可能已经将其作为FOSS工具。 是否有人熟悉免费可以让Java applet直接从TWAIN扫描程序读取的工具吗? 解决方案 从除了以外的任何东西调用TWAIN API C / C ++将是一个主 ..
发布时间:2018-12-10 22:22:54 Java开发

JNI如何访问Java Object(Integer)

我有一个JNI方法来访问返回Integer对象的java方法。我不想返回原始int类型,因为将修改此代码以处理Generic对象。以下是我所拥有的。我无法获得通过的Integer的值。 C ++方面的输出类似于 value = 0x4016f3d0 如何获得我在C ++端传递的Integer对象的实际值? 请帮忙。 谢谢, -H ..
发布时间:2018-12-10 21:06:53 Java开发

Javah工具错误:无法找到hellojni的类文件

我试图在Windows 7操作系统上从命令行使用javah工具创建头文件,但我一直都失败了。 我已经按照不同的方式,甚至从oracle阅读了javah工具的文档,但是他们没有帮助克服这个问题。 我的类文件( hellojni.class )和java文件( hellojni.java )两者都在 D:\ 驱动器的根目录中。 但每当我运行javah工具时,它都会给我一个错误: ..
发布时间:2018-12-10 12:07:23 Java开发

适用于Linux Java Swing应用程序的Kiosk模式

如何在[Ubuntu] Linux机器上禁用操作系统级键盘快捷键(例如Alt-Tab,Ctrl-Alt-Left / Right等)?我正在开发一个全屏Java Swing应用程序,并且不希望用户能够任意切换程序。仅仅切换“永远在线”标志是不够的;不允许用户切换工作区,迁移焦点或任何其他此类事物。在执行应用程序之前和之后,机器必须正常运行。谷歌表示,这将需要JNI或JNA,但我正在寻找更多的手持。 ..
发布时间:2018-12-07 17:51:15 Java开发

这些java本机内存从哪里分配?

JDK版本是热点8u_45 我研究了我的java进程的本机内存。本机内存甚至比堆消耗更多空间。然而,有许多本机内存块让我感到困惑。例如pmap -x的结果: 00007f8128000000 65508 25204 25204 rw --- [anon] 00007f812bff9000 28 0 0 ----- [anon] 00007f812c000000 65508 2 ..
发布时间:2018-12-07 13:48:38 Java开发

我可以使用本机编译作为Java混淆

我正在为Java应用程序编写插件。我可以对插件进行模糊处理,但它仍然可以很容易地进行逆向工程。 我相信如果我可以将这个插件编译成共享库,它大量使用JNI进行通信在主要应用程序中,逆向工程将更加困难。我愿意为JNI牺牲一些性能,而我编写的应用程序确实支持共享库加载。唯一的问题是我不知道有一个工具可以完成这项工作:gcj似乎依赖于它自己的运行时和IKVM.NET - 在.NET上 要成为精 ..
发布时间:2018-12-07 13:41:29 Java开发

检查是否已加载dll库? (JAVA)

在我编写的Java程序中,我对一个dll进行jni调用并在启动时加载库,如下所示 static { System.loadLibrary(“LdapAuthenticator2”); } 然后我实现了另一个加载相同库的类,并且收到错误说该库已经加载,有没有办法检查库是否已经运行? 谢谢, -Pete 解决方案 检查我对这个问题的回答 ..
发布时间:2018-12-07 13:14:58 Java开发

从Java访问iSeries上的RPG

有没有人有过直接与Java上V5R4 iSeries机器上运行的RPG程序交谈的好经验?如果是这样,社区的建议是什么,我应该避免哪些陷阱? 从我试过的各种文献和尖峰解决方案看起来像虽然我们可以使用ProgramCallBeans(或者通过PCML或xPCML),聊到DataQueues(异步通讯),甚至JNI。 我在找东西是稳健,高效,快速开发,易于维护,易于测试(我们都不是!?!)。 ..
发布时间:2018-12-07 12:52:37 Java开发

如何在jni中将jbyteArray转换为本机char *?

我想在jni中将jbyteArray转换为native c string(char *)?不幸的是我找不到任何关于如何做到这一点的文档。我正在使用c代码中的以下原型调用java函数。 public static byte [] processFile(byte [] p_fileContent) 在c代码中我正在调用这个返回字节数组的函数。该字节数组的内容是一个java字符 ..
发布时间:2018-12-07 12:31:04 Java开发

如何检查文件是否可读?

我正在编写Java 6应用程序,我必须检查文件是否可读。但是,在Windows上 canRead()始终返回 true 。所以我看到可能,唯一的解决方案可能是基于WINAPI并用JNA / JNI编写的一些原生解决方案。 但是,还有另一个问题,因为在WINAPI中很难找到一个简单的函数,它会返回有关文件访问的信息。我发现 GetNamedSecurityInfo 或 GetSecurityI ..
发布时间:2018-12-07 12:07:33 Java开发

原生方法的源代码是否可用?

首先,我想告诉您这个问题与什么是无关的。 Java中的本机实现。我从该线程中获得了许多有用的信息。 我想知道那些原生实现的代码是否可用?我有jdk源代码,但我找不到 System.currentTimeMillis 或的本机代码Runtime.getRuntime()。availableProcessors()或其他原生方法。 解决方案 是的,请参阅 os :: javaTimeMi ..
发布时间:2018-12-06 14:32:14 Java开发

Valgrind和Java

我想使用Valgrind 3.7.0在我的Java本机代码中查找内存泄漏。我正在使用jdk1.6.0._29。 为此,我必须设置--trace-children = yes标志。设置该标志,我不再可以在任何java应用程序上运行valgrind,甚至可以执行以下命令: valgrind --trace-children = yes --smc-check =所有java -versi ..
发布时间:2018-12-06 14:08:22 Java开发

使用JNI创建,填充和返回Java类实例

我正在尝试使用JNI函数创建Java类,并使用DeviceId.java构造函数方法设置该类的一些属性。我能够使用GetMethodID获取构造函数方法,但是如何创建Device.java的新实例然后设置属性(setId和setCache)。目标是将完全填充的Device.java对象实例返回给调用者。有什么想法吗? JNI功能: JNIEXPORT jobject JNICALL ..
发布时间:2018-12-06 13:54:24 Java开发

为什么我不应该在JNI中重用jclass和/或jmethodID?

这是一个与上一篇文章相关的问题,但这篇文章已经解决了,现在我想改变问题的方向。 在与JNI合作时,有必要问 JNIEnv 对象为 jclass 和 jmethodID 为每个类和方法用于C / C ++代码。为了清楚起见,我想从C / C ++调用Java结构或方法。 由于从Java到C / C ++(反之亦然)的通信成本很高,我最初认为最小化这种方法的一种方法是重用 jclass 和 ..
发布时间:2018-12-06 12:35:36 Java开发

静态c ++对象中的JNI环境指针并且连续两次调用一个带有字符串参数的java函数会导致JVM崩溃

所以在我的评论员要求我终于找到了一个再现我的错误的MCVE。所以一般设置是Java使用JNI调用dll,并且dll抓住正在运行的JVM并存储指向JNIEnv的指针,它用于调用java类中的方法(从c ++调用java类)不一定是原始调用java对象,这就是输入jobject不用于回调的原因)。在我进一步解释之前,让我发布所有代码: JniTest.java package jnite ..
发布时间:2018-12-05 21:51:46 Java开发