jni相关内容

如果调用JNI DeleteGlobalRef(),相应的java对象是否会被垃圾回收?

我的意思是,如果我在C ++中创建一个全局引用jobject,然后将其传递给某些Java代码,并删除调用DeleteGlobalRef(),那么底层的java对象是否可能立即被垃圾收集,以便任何未来已经引用该对象的Java代码可能会返回NullPointerException?具体来说,如果我有一些C ++代码执行类似这样的简化示例: static jobject myObjGlobalR ..
发布时间:2018-12-26 15:03:57 Java开发

JNI依赖库

我正在通过JNI运行一个库(我没有写它),并在内部调用另一个DLL。我收到一个错误,说“找不到依赖库”,除非我把另一个DLL的路径放在系统PATH变量上(我在Windows XP上)。我希望能够在java命令行上处理这个问题,我已经尝试将它添加到-Djava.library.path并添加到类路径中,两者都没有用(我希望-Djava.library.path可以工作)但不是类路径,但都没有工作)。 ..
发布时间:2018-12-26 14:49:47 Java开发

如何通过Java代码影响System.loadLibrary()的搜索路径?

在Java项目中,我使用的是第三方库,它通过加载一些本地库。 System.loadLibrary( “LIBNAME”); 我希望能够在我的应用程序中影响此方法的搜索路径,所以用户不需要在命令行上指定正确的java.library.path值(此值取决于当前的操作系统和体系结构)。例如在Windows上我想将它设置为“lib / native / windows”,在L ..
发布时间:2018-12-26 14:48:22 Java开发

以编程方式设置Java.library.path

我可以从java代码本身以编程方式设置java.library.path吗? 以下内容不起作用。 System.setProperty(“java.library.path”,“/ blah”); 解决方案 不,你不能。此属性是只读值。您可以使用以下命令在JVM启动时更改它: -Djava.library.path = your_path ..
发布时间:2018-12-26 14:44:22 Java开发

Unity中的回调监听器 - 如何从Android中的UnityPlayerActivity调用脚本文件方法

我有一个android库项目并在Unity项目中导入了库项目。现在,我想在Unity项目中实现一个回调,它将根据android库项目给出的响应执行。我的意思是说,来自UnityPlayerActivity的调用脚本文件方法(Android项目)。 目前我在下面的代码行使用但没有任何反应: UnityPlayer.UnitySendMessage(“Main Camera”,“show ..
发布时间:2018-12-26 14:42:48 Java开发

将JNI库添加到本地Maven存储库

我希望使用Maven将JNI库(包括其共享对象(.so)文件)添加到我的项目中。不幸的是它还没有在公共存储库中,所以我想我必须自己在我的本地存储库中安装它才能使它工作。 我如何去包括本机部分在Maven中捆绑在我的项目中(最终使用copy-dependencies插件导出)。这是一个标准的J2SE应用程序(不是网络应用程序),打包.jar? 我想要添加的库是此类在app启动时加载库(计 ..
发布时间:2018-12-26 14:37:07 Java开发

为什么JNI调用本机方法比sun.misc.Unsafe中的类似慢

我正在开发类似于sun.misc.Unsafe的JNI实现,但具有扩展的内存管理。 如何从sun.misc.Unsafe和我开发的库中解释本机方法的调用时间是非常不同的? 一些数字: sun.misc.Unsafe.getInt(地址)需要〜1ns ,当我的类似方法需要~10ns 两个实现完全相同,遵循openJDK的源代码,只是通过指针返回变量。在JNI模块中不安全,以与其 ..
发布时间:2018-12-26 13:12:24 Java开发

如何在intelliJ Idea中设置java.library.path

有谁可以帮助我如何解决此错误: 本机代码库无法加载。 java.lang.UnsatisfiedLinkError:java.library.path中没有ts-jni I我是第一次使用IDEA IDE,并一直使用Resin_4.0.37作为服务器来测试我的工作。 一旦我在调试模式下启动我的lcoal服务器,它会停留大约1-2分钟然后突然下降并通过给我上述错误而断开 ..
发布时间:2018-12-25 22:10:11 Java开发

长期存在的Java WeakReferences

我目前正在尝试诊断应用程序中的缓慢内存泄漏。我到目前为止的事实如下。 我从应用程序的4天运行中获得了堆转储。 这个堆转储包含~800个WeakReference对象,这些对象指向对象(所有相同的类型,我将这个问题称为Foo)保留40mb的内存。 Eclipse内存分析工具显示这些WeakReferences引用的每个Foo对象都不会被任何其他对象引用。我的期望是这应该使这些Foo对象弱可 ..
发布时间:2018-12-25 20:45:34 Java开发

不支持的JNI版本0xFFFFFFFF

从java代码使用本机dll时有没有遇到过这个错误? 它是JNI库的版本吗?或未解决的依赖? 错误: 由以下原因引起: java.lang.UnsatisfiedLinkError:不支持的JNI版本0xFFFFFFFF C:\ _jnwasapi.dll at java.lang.ClassLoader $ NativeLibrary.load(Native Method) ..
发布时间:2018-12-24 12:48:54 Java开发

JNI无法在NetBeans上检测到__int64

我正在尝试编译本机库以便在java(使用JNI)中使用它。我已经按照本教程: https://cnd.netbeans .org / docs / jni / beginning-jni-win.html 错误 当我尝试编译时,我有这个错误(见第4行): [...] In文件包含在../../Progra〜2/Java/jdk1.8.0_91/include/jni.h: ..
发布时间:2018-12-22 19:23:50 Java开发

使用SWIG处理C函数返回Java中结构数组的指针

我正在试图找出需要哪些SWIG接口文件更改才能处理getFoo返回一个指向自定义结构数组的指针(sender_id_t)。没有任何特殊的SWIG接口代码,我只得到Java端的指针。如何将该指针转换为可循环或迭代的东西(在Java中),以便我可以获取每个sender_id_t id值?感谢任何建议。 C结构: typedef unsigned char id_v1_t [32]; ..
发布时间:2018-12-22 19:18:31 Java开发

“发生了JNI错误”对于该程序的一个实例,而不是另一个实例

我在一台运行良好的计算机上在Eclipse Java Mars中创建了一个大型程序。我将程序导出为可运行的Jar文件并运行它没有任何问题。即使我将整个项目导出到另一台计算机,该程序仍然有效。 当我对项目进行细微更改时,问题出现在另一台计算机上。这些更改只是基于内容的更改,并且应该对程序的功能没有任何影响。 从eclipse运行程序似乎没有问题。但是,当我想运行新创建的Jar文件时,我收到以下 ..
发布时间:2018-12-21 20:22:58 Java开发

Linux中的java.lang.UnsatisfiedLinkError

我已经设法进入linux机器来尝试在这个答案。 我已经编译了示例代码,现在我运行了程序,我得到以下消息: [oracle @ machine jxgrabkey-0.2.1_i386] $ java -classpath lib / JXGrabKey。 jar:示例JXGrabKeyTest 线程“main”中的异常** java.lang.UnsatisfiedLinkE ..
发布时间:2018-12-20 23:30:08 Java开发

通过log4j发送JNI C stderr / stdout

我的java应用程序使用JNI来调用用C编写的库。这个本机库将错误记录到stderr,但我想以某种方式通过我的log4j记录器重定向错误流。这可能吗? C库是外部的 - 我没有源代码,因此无法更改它。 谢谢 解决方案 注意:我没有尝试过这个答案; YMMV。 POSIX方法 freopen 将更改与流关联的基础文件。正如联机帮助页所述:“freopen()函数的主要用途是 ..
发布时间:2018-12-20 22:44:19 Java开发

JNI vs Runtime.exec()

我有两个选择 - 我可以使用JNI或使用Runtime.exec来执行C ++库。 C ++程序是CPU密集型的并且长期运行,即一些电话可能需要几个小时才能返回。 每种电话的优缺点是什么? 我应该采用哪种方法? 解决方案 如果您需要与C ++库进行交互,请转到JNI。 如果它是一个你想要调用的独立程序(也许是获取输出), Runtime.exec()更简单。 ..
发布时间:2018-12-19 23:50:53 Java开发

如何使用Java在屏幕上移动Windows窗口?

我一直在考虑用GUI创建一个窗口管理器,可能是用Java编写的。但是,我正在努力找出移动不属于我的程序的窗口的最佳方法。 到目前为止,似乎我应该使用JNI与Windows API进行交互,但我没有找到任何有用的示例。 有谁知道怎么做? 谢谢! PS。我不一定与Java绑在一起,如果有更好的语言可以做到这一点。 解决方案 如果目的是为了有一个快速的窗口管理器你最好用C ..
发布时间:2018-12-19 23:45:36 Java开发

使用JNI使用C计时器库接口java

我正在努力让这个简单的例子起作用: import java.io. *; 公共类Timer { public static void main(String [] args){ setTimer(new Runnable(){ public void run(){ System.out.println(“tick”); } }, 1000 / * msecs * / ..
发布时间:2018-12-19 22:40:47 Java开发