jni相关内容

本机Java方法是否等同于静态Java方法?

我正在将一些本机方法重写为常规Java方法。 本机方法是否有效静态?或者有没有他们有隐含'this'参数的情况? 谢谢! 解决方案 原生方法可以 static 或非 - static ,就像常规Java方法一样。 非 - static 本机方法接收此引用,静态接收的改为引用类别的引用。 来自 JNI规范: 原生方法参数 JNI接口指针是本机方法的第一个参 ..
发布时间:2018-12-05 21:11:35 Java开发

如何用JNI或JNA阅读窗口标题?

希望重新回到发展空间;主要使用Java来调用一些原生的win32函数(我不想在.NET中构建).... 有人能指出我能去的地方吗?使用Java(JNI / JNA / SWIG)从不同的运行窗口中读取标题。假设您知道您尝试连接的应用程序在内存空间中的哪个位置。 解决方案 在JNA中: 公共接口User32扩展StdCallLibrary { User32 INSTANCE = ..
发布时间:2018-12-05 20:05:54 Java开发

JNI附加/分离线程内存管理

我有一个JNI回调: void callback(Data * data,char * callbackName){ JNIEnv * ENV; jvm-> AttachCurrentThread((void **)& env,NULL); / *开始有用的代码* / / *结束有用的代码* / jvm-> DetachCurrentThread(); } ..
发布时间:2018-12-05 11:22:13 Java开发

将字符串从Java传递到JNI

我想将一个字符串传递给我正在写的JNI,它必须分配给一个const char *。 下面提到我是如何做到的: JNI ...(...,jstring jstr。 ..){ const char * str = env-> GetStringUTFChars(jstr,0); env-> ReleaseStringUTFChars(str,jstr,0); } ..
发布时间:2018-12-05 10:06:09 Java开发

从类路径加载本机库

我的项目设置遵循标准目录布局(不使用Maven): src / main | java |资源 | library.dll 原生DLL位于资源文件夹和java文件夹中的源。 resources文件夹是Java类路径的成员。 我现在想加载DLL而不必设置JRE -Djava。 library.path 选项或设置 PATH 变量,这样只需双击即可启动生 ..
发布时间:2018-12-04 13:32:27 Java开发

进行JNI呼叫的定量开销是多少?

仅仅基于性能,大约有多少“简单”的java行是进行JNI调用的等效性能? 或试图表达问题以更具体的方式,如果一个简单的java操作,如 someIntVar1 = someIntVar2 + someIntVar3; 的“CPU工作”指数 1 ,进行JNI呼叫的开销的典型(球场)“CPU工作”指数是什么? 这个问题忽略等待本机代码执行所花费的时间。 ..
发布时间:2018-12-04 11:53:16 Java开发

如何找到jni.h?

在Ubuntu 12.04中,我安装了sun / oracle的jdk7。当找到jni.h 时,它会打印多个位置 / usr / lib / jvm / java-6-openjdk-amd64 / include / jni.h /usr/lib/jvm/jdk1.7.0_07/include/jni.h ... 在JDK生成的头文件中,有 include ..
发布时间:2018-12-04 11:53:07 Java开发

我可以通过JNI从Node.js调用Java吗?如何?

我可以通过 JNI 从Node.js调用Java吗?有没有例子? 解决方案 这看起来很棘手。 Node.JS在Google Chrome JavaScript引擎 V8 上运行。您需要做的是创建一个V8 C ++绑定( v8 c ++速成课程展示了一个启动JVM并执行所有JNI处理的示例。 我认为您可能最好让JavaServer和Node.js通过网络进行通信(某人)写了使用Rabb ..
发布时间:2018-11-29 20:09:02 Java开发

有没有办法通过JNI将Java数组传递给C而不复制它?

据我所知,使用GetDoubleArrayElements,JVM决定是否复制Array的元素。在这种情况下,有没有办法避免副本?如果没有,是否有其他方式从Java转移到C而不复制?我正在传递非常大的阵列,我希望我能避开副本。 谢谢 解决方案 JNI指南说: 在JDK / JRE 1.1中,程序员可以使用Get / ReleaseArrayElements函数来获取指向原始数组元素 ..
发布时间:2018-11-29 19:16:34 Java开发

将静态库与JNI链接

Java 8之前的Java版本要求本机代码位于共享库中,但我已经阅读过Java 8,可以将静态链接库与JNI一起使用。我搜索过示例但找不到任何示例。 如何将JNI库静态链接到我的java应用程序? 解决方案 Java SE 8规范已更改为支持静态链接,静态链接在JDK中实现。在的System.loadLibrary 。它引用的JNI规范的部分是 ..
发布时间:2018-11-29 18:34:34 Java开发

无法在Ubuntu 13.04中的R 3.0中安装rJava

我无法在 R 3.0 中调用 rJava 包。我收到以下消息 错误:包'rJava'是在R 3.0.0之前构建的:请重新安装它 当我尝试重新安装时遇到错误 rJava 包。我提供了输出 R CMD javareconf Java解释器:/ usr / bin / java Java版本:1.7.0_21 Java主路径:/ usr / lib / jvm ..
发布时间:2018-11-28 21:06:10 Java开发

将Java应用程序固定到Windows 7任务栏

我在Windows 7下使用Launch4j作为我的Java应用程序的包装器,根据我的理解,实质上是分析了一个 javaw.exe 的实例,它反过来解释了Java代码。因此,在尝试将我的应用程序固定到任务栏时,Windows会将 javaw.exe 固定。如果没有所需的命令行,我的应用程序将无法运行。 正如您所看到的,Windows也没有意识到Java是主机应用程序:应用程序本身被描述作为“ ..
发布时间:2018-11-28 20:42:49 Java开发

JNI Hello World不满意链接错误

这是我第一次尝试JNI。我的最终目标是让所有任务当前在一台机器上运行,但需要运行一个简单的例子。当我尝试执行我的主程序时,我不断收到此错误。我提供了简单的Java主程序,生成的头文件和错误。 我不知道这个DLL可能依赖什么。它最初引用了我追踪并放入system32(msvcr90.dll)的DLL。 这是我用来编译C代码的命令,它生成了DLL,OBJ,LIB,EXP和清单文件。 ..
发布时间:2018-11-28 20:20:16 Java开发

在JNI中使用它时出现Javah错误

命令: javah -jni JavaHowTo 结果: 错误:无法访问JavaHowTo 类文件JavaHowTo not found javadoc:error - 未找到类JavaHowTo。 错误:命令行中未指定任何类。试试-help。 我已经正确设置了类路径,但我仍然得到这个 javah 错误。 任何解决方案都会 ..
发布时间:2018-11-28 00:42:46 Java开发

没有应用程序焦点的Java中的事件监听器? (全球按键检测)

我一直在寻找一段时间,每个人似乎都认为这不可能只使用Java,所以我会给出一个镜头;) 是有没有办法让我的Java应用程序监听事件(特别是关键事件),而另一个不相关的应用程序有窗口焦点?在我的情况下,我想要检测用户何时按下键盘上的“暂停”键,即使我的Java应用程序没有焦点。 我'听到有人提到,唯一的办法是编写一些C代码并使用JNI。只是好奇是否有人知道如何避免这种情况?或者,如果没有 ..
发布时间:2018-11-28 00:05:23 Java开发

在Java中在运行时为本机库添加新路径

是否可以在运行时为本机库添加新路径? (而不是使用属性java.library.path启动Java),因此在尝试查找时,对 System.loadLibrary(nativeLibraryName)的调用将包含该路径 nativeLibraryName 。 这是可能的,或者这些路径在JVM启动后被冻结了吗? 解决方案 没有少量黑客行为似乎是不可能的即访问ClassLoader类的私有 ..
发布时间:2018-11-27 23:53:58 Java开发