jni相关内容
我正在将一些本机方法重写为常规Java方法。 本机方法是否有效静态?或者有没有他们有隐含'this'参数的情况? 谢谢! 解决方案 原生方法可以 static 或非 - static ,就像常规Java方法一样。 非 - static 本机方法接收此引用,静态接收的改为引用类别的引用。 来自 JNI规范: 原生方法参数 JNI接口指针是本机方法的第一个参
..
希望重新回到发展空间;主要使用Java来调用一些原生的win32函数(我不想在.NET中构建).... 有人能指出我能去的地方吗?使用Java(JNI / JNA / SWIG)从不同的运行窗口中读取标题。假设您知道您尝试连接的应用程序在内存空间中的哪个位置。 解决方案 在JNA中: 公共接口User32扩展StdCallLibrary { User32 INSTANCE =
..
我有一个JNI回调: void callback(Data * data,char * callbackName){ JNIEnv * ENV; jvm-> AttachCurrentThread((void **)& env,NULL); / *开始有用的代码* / / *结束有用的代码* / jvm-> DetachCurrentThread(); }
..
长话短说:我有一个可执行jar,调用 jni.dll ,它依赖于 lib.dll 。而且我得到了那么可怕的 UnsatisfiedLinkError 。
..
设置JVM参数之间是否有区别 -Djava.library.path = / path 在JVM启动并设置Linux环境变量 在JVM启动之前导出LD_LIBRARY_PATH = / path ? 这两种方法有哪些优点/缺点? 解决方案 第一个表格 -Djava.library.path = / path
..
我想将一个字符串传递给我正在写的JNI,它必须分配给一个const char *。 下面提到我是如何做到的: JNI ...(...,jstring jstr。 ..){ const char * str = env-> GetStringUTFChars(jstr,0); env-> ReleaseStringUTFChars(str,jstr,0); }
..
我的项目设置遵循标准目录布局(不使用Maven): src / main | java |资源 | library.dll 原生DLL位于资源文件夹和java文件夹中的源。 resources文件夹是Java类路径的成员。 我现在想加载DLL而不必设置JRE -Djava。 library.path 选项或设置 PATH 变量,这样只需双击即可启动生
..
我正在使用以下C ++代码初始化Java VM。 JNI_CreateJavaVM 抛出 0xC0000005 异常,但如果我忽略它就会成功。 'Jni.exe'(Win32):已加载'C:\ Tools \ Java \ Jdk8.77x86 \ jre \\ \\bin\zip.dll”。无法找到或打开PDB文件。 Jni.exe中0x02900282处抛出异常:0xC000000
..
将原生指针存储在Java对象中的“正确”方法是什么? 我可以将指针视为Java int ,如果我碰巧知道原生指针的大小是
..
仅仅基于性能,大约有多少“简单”的java行是进行JNI调用的等效性能? 或试图表达问题以更具体的方式,如果一个简单的java操作,如 someIntVar1 = someIntVar2 + someIntVar3; 的“CPU工作”指数 1 ,进行JNI呼叫的开销的典型(球场)“CPU工作”指数是什么? 这个问题忽略等待本机代码执行所花费的时间。
..
在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
..
我可以通过 JNI 从Node.js调用Java吗?有没有例子? 解决方案 这看起来很棘手。 Node.JS在Google Chrome JavaScript引擎 V8 上运行。您需要做的是创建一个V8 C ++绑定( v8 c ++速成课程展示了一个启动JVM并执行所有JNI处理的示例。 我认为您可能最好让JavaServer和Node.js通过网络进行通信(某人)写了使用Rabb
..
据我所知,使用GetDoubleArrayElements,JVM决定是否复制Array的元素。在这种情况下,有没有办法避免副本?如果没有,是否有其他方式从Java转移到C而不复制?我正在传递非常大的阵列,我希望我能避开副本。 谢谢 解决方案 JNI指南说: 在JDK / JRE 1.1中,程序员可以使用Get / ReleaseArrayElements函数来获取指向原始数组元素
..
Java 8之前的Java版本要求本机代码位于共享库中,但我已经阅读过Java 8,可以将静态链接库与JNI一起使用。我搜索过示例但找不到任何示例。 如何将JNI库静态链接到我的java应用程序? 解决方案 Java SE 8规范已更改为支持静态链接,静态链接在JDK中实现。在的System.loadLibrary 。它引用的JNI规范的部分是
..
我无法在 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
..
我在Windows 7下使用Launch4j作为我的Java应用程序的包装器,根据我的理解,实质上是分析了一个 javaw.exe 的实例,它反过来解释了Java代码。因此,在尝试将我的应用程序固定到任务栏时,Windows会将 javaw.exe 固定。如果没有所需的命令行,我的应用程序将无法运行。 正如您所看到的,Windows也没有意识到Java是主机应用程序:应用程序本身被描述作为“
..
这是我第一次尝试JNI。我的最终目标是让所有任务当前在一台机器上运行,但需要运行一个简单的例子。当我尝试执行我的主程序时,我不断收到此错误。我提供了简单的Java主程序,生成的头文件和错误。 我不知道这个DLL可能依赖什么。它最初引用了我追踪并放入system32(msvcr90.dll)的DLL。 这是我用来编译C代码的命令,它生成了DLL,OBJ,LIB,EXP和清单文件。
..
命令: javah -jni JavaHowTo 结果: 错误:无法访问JavaHowTo 类文件JavaHowTo not found javadoc:error - 未找到类JavaHowTo。 错误:命令行中未指定任何类。试试-help。 我已经正确设置了类路径,但我仍然得到这个 javah 错误。 任何解决方案都会
..
我一直在寻找一段时间,每个人似乎都认为这不可能只使用Java,所以我会给出一个镜头;) 是有没有办法让我的Java应用程序监听事件(特别是关键事件),而另一个不相关的应用程序有窗口焦点?在我的情况下,我想要检测用户何时按下键盘上的“暂停”键,即使我的Java应用程序没有焦点。 我'听到有人提到,唯一的办法是编写一些C代码并使用JNI。只是好奇是否有人知道如何避免这种情况?或者,如果没有
..
是否可以在运行时为本机库添加新路径? (而不是使用属性java.library.path启动Java),因此在尝试查找时,对 System.loadLibrary(nativeLibraryName)的调用将包含该路径 nativeLibraryName 。 这是可能的,或者这些路径在JVM启动后被冻结了吗? 解决方案 没有少量黑客行为似乎是不可能的即访问ClassLoader类的私有
..