jni相关内容

如何在Windows上使用Java EE(Servlet)正确使用JNI?

我想了解Servlet使用JNI的正确方法是什么。 据我所知,有几个问题: 如果本机DLL崩溃,它将关闭整个应用服务器 如果DLL由一个加载的类加载,而不是另一个类加载器将无法加载和使用它。 我搜索了互联网并发现了几种可能的解决方案 创建独立的启用JMS的应用程序,并使用Servlet中的JMS与之通信。 运行独立服务器,加载JNI和通过RMI与之交谈 使用Java连 ..
发布时间:2019-01-15 11:24:52 J2EE

在WAR文件中使用SIGAR API

我遇到了Hyperic的Sigar API(http://www.hyperic.com/products/sigar),它是Java的系统信息和报告API。它大量使用JNI来收集数据,而独立版本包含/ lib文件夹中的.SO和.DLL文件。 它在独立模式下工作正常,但我想要在WAR中使用此库。在启动服务器时,如果没有在“-Djava.library.path”中指定lib路径,是否仍然可以 ..
发布时间:2019-01-15 11:12:01 J2EE

java 8中javaw进程的私有字节增加

我的项目已经开始使用java 7中的java 8. 切换到java 8之后,我们发现消耗的内存随着时间的推移而越来越高。 以下是我们所做的调查: 问题仅在迁移后出现来自java7和java8 因为元数据空间是与内存相关的唯一内容,它是从hava 7更改为java 8.我们监视了metaspace,这不会超过20 MB。 堆也保持一致。 现在剩下的唯一路径就是分析内存的分 ..
发布时间:2019-01-14 11:25:07 Java相关

如何避免两次调用System.load?

我有一个类调用本机函数来从CMOS获取有关系统的信息。该类有一个静态初始化块,它加载包含本机函数的库,它看起来像这样: package lib。 SYSID; 公共类SysId { private static native int getSysIdNative(); private static final String SYS_ID_PATH =“libsysid.so ..
发布时间:2019-01-10 13:35:09 Java相关

在JNI函数(Android)之外从C调用java中的函数?

我正在尝试使用Android中的JNI从我的C代码调用Java函数,但我处于一种有点尴尬的境地。 我的C代码正在传递给库的回调中的JNI函数之外执行。 以下是java代码的示例 package com。 my.java.package; class MyClass { public function handleData(byte [] data){ doSomet ..
发布时间:2019-01-10 13:16:32 Java相关

如何自动将数据复制到新的RMI线程?

我正在调整一个小的rmi客户端 - 服务器应用程序。我写过几件事: HelloInterface - > RMI的Hello World界面 服务器 - >服务器应用' 客户端 - >客户端应用程序' 没什么特别的,但是......我把手放在一个新的RMISecurityManager中,它调用JNI方法并检查单独用户的权限: package rmi; im ..
发布时间:2019-01-09 21:17:29 Java相关

在Windows 7上为JNI_CreateJavaVM链接到哪个库?

我正在用C ++构建JNI应用程序的第一个工作版本。我不相信应用程序的具体细节对于这个问题很重要。如果是,我会追加它们。 我的代码编译没有错误。但是,有一个链接器错误: 错误LNK2019:未解析的外部符号__imp__JNI_CreateJavaVM @ 12 我知道 JNI_CreateJavaVM 不包含在 jvm中。 lib / jvm.dll 。但是,我 ..
发布时间:2019-01-09 21:03:22 Java相关

JNI不满意链接错误?

我正在练习JNI并创建了共享库文件Samplelib.so。我将创建库文件的目录添加到java.library.path中,当我运行java文件时,我得到了java.lang.UnsatisfiedLinkError。这是我的Sample.java。 import java.util。*; public class Sample { public native int intmeth ..
发布时间:2019-01-09 20:30:41 Java相关

强制Jetty加载父ClassLoader中的类

我从本机代码启动JVM,然后启动Jetty。然后,webapp会加载一个名为JPeripheral的库。本机启动器和JPeripheral都依赖于一个名为Jace的本机库。当webapp尝试加载Jace Java抛出时: java.lang.UnsatisfiedLinkError:本机库jace.dll已经加载到另一个类加载器中 这是webapp中的ClassLoader层次结构: ..
发布时间:2019-01-09 19:59:10 Java相关

Java:如何使用JNI函数停止调用一系列C ++函数的Thread?

所以,这是我的情况: 我有一个Java应用程序,它使用来自“JavaToCpp”的JNI方法将数据数组发送到C ++ DLL “class。 一旦C ++ DLL收到了所有数据,它就开始对它执行几个操作。 我正在使用新线程运行“JavaToCpp”类,因为我的Java接口在(长)(C ++)过程/子例程期间不会被冻结。 我实现了两种方法来停止工作(C ++)程序/子程序: ..
发布时间:2019-01-09 19:55:09 Java相关

在Linux上将wstring转换为jstring

我在unix中将wstring转换为jstring时出现问题,因为linux上的wchar_t的大小为4个字节(不像2个字节,因为我不能使用wchar_t转换为jchar)。 任何人都可以帮助我吗? 谢谢, Reza 解决方案 你必须使用类似 iconv()的东西,因为C ++宽字符串有一个不透明的(读取:未知)编码,而Java期望UTF16。试试这个: #inclu ..
发布时间:2019-01-08 20:37:11 Java相关

如何在MethodEntry回调中获取参数值

我有以下java代码 public class Test { public void sayHello(String msg){ System.out.println(msg); } } new Test()。sayHello(“Bonjour”); 我有一个附加到java的jvmti代理,我捕获函数调用。我想获取传递给我的方法的参数值(例如“Bonjou ..
发布时间:2019-01-08 19:25:44 Java相关

通过JNI C代码将PNG图像作为BufferedImage加载到Java中

我有以下问题。我有C代码,它将PNG图像作为基本原始数据获取并将其保存在内存中。我希望通过使用JNI将这些原始数据转换为Java中的BufferedImage。有没有人知道这样做或以前做过这个? 解决方案 我会假设你知道如何做的基本知识用JNI调用函数。它并不复杂,虽然它可能是一个痛苦的屁股。 如果你想快速完成它,只需将PNG写入临时文件,通过JNI传递文件名并使用ImageIO加载 ..
发布时间:2019-01-08 19:17:48 Java相关

在调用DestroyJavaVM之后,重新调用JNI_CreateJavaVM会返回-1

我试图在调用DestroyJavaVM之后回忆起JNI_CreateJavaVM。 我按以下顺序调用它们:InitJVM - > ReleaseJVM - > InitJVM 首次初始化时,JNI_CreateJavaVM返回0并正常工作。 第二次在销毁后初始化时,JNI_CreateJavaVM返回-1并且不起作用。 会出现什么问题? 这是一个创建JVM的函数: ..
发布时间:2019-01-08 18:57:41 Java相关

由不同的类加载器加载的相同本机库

请考虑以下场景: 我有两个使用不同系统类加载器加载的java类。我有一个实现了队列的本机库。这两个类都将加载相同的库,并将元素添加到队列中。可能吗?如果是这样,将在两个类之间共享本机库实现。? 解决方案 根据 JNI规范是不可能的。 在JDK中,每个类加载器都管理自己的一组本机库。 无法将相同的JNI本机库加载到多个类加载器中。这样做会导致抛出 UnsatisfiedLinkE ..
发布时间:2019-01-08 18:45:09 Java相关

从JNI调用函数指针

我已经在cpp中使用原型实现了一个函数 MyFunction(int size,int(* callback)(UINT16 * arg1,UINT16 * arg2)); 第二个参数是一个必须在java中实现的函数指针。我该如何实现该功能? 另外如何在JNI中调用MyFunction?请帮助 解决方案 试试这个 Java import java.util。*; ..
发布时间:2019-01-08 14:01:38 Java相关

c ++插件 - > JNI - > Java Classpath

我正在尝试为应用程序创建插件。插件需要用c ++编写。我想在Windows和Mac上使用插件,所以用Java编写插件会很棒。 我的问题是,还有一个使用Java的插件。由于它们使用相同的主应用程序,因此已经有一个正在运行的JavaVM。 JavaVM * jvm = NULL; jsize jvm_count = 0; jint res = 0; res = JNI ..
发布时间:2019-01-08 13:31:14 Java相关

JNI Java in c ++

我正在尝试使用以下代码在cplusplus程序中创建Java虚拟机: JNIEnv * env; JavaVMInitArgs vm_args; JavaVMOption选项[1]; options [0] .optionString =“ - Djava.class.path = D:\\Java Src \\ TestStruct”; // java源代码的路径 vm_ ..
发布时间:2019-01-08 13:23:41 Java相关

销毁后创建JVM

我试图在调用destroyVM之后调用JNI_CreateVM,但它总是返回-1。这是JDK中的错误吗? 我发现以下链接描述了同样的问题: JNI Bug 该链接有一个示例代码,可以重现我遇到的问题。有没有人知道如何解决这个问题? 谢谢, Sami 解决方案 我发现有几个论坛帖子报告说CreateJavaVM / DestroyJavaVM / CreateJav ..
发布时间:2019-01-08 12:17:18 Java相关

Maven和本地图书馆

我在我的java项目中使用maven,我不明白如何添加本机库。在我的非maven项目中,我是通过CLASSPATH完成的。我在当前的java项目中使用NetBeans和maven。 解决方案 如果您只想将本机库添加到类路径中,尝试将它们放入 src / main / resources 。 更新:你可以指定POM中资源的位置: ..
发布时间:2019-01-08 12:14:07 Java相关