jni相关内容
我正在寻找一个与标准Unix函数接口的Java库,即 stat(), getpwuid(), readlink()。 这曾经存在,被称为 javaunix 。它于2000年发布。请参阅此公告。但是项目页面现在已经消失。 今天Java中是否有这些类型的函数的现代替代品?可以对 / bin / ls -l 进行系统调用并解析输出,或编写自定义JNI方法,但这些方法比简单使用旧方法更有效。
..
如果我们查看Java Object类,那么我们可以找到一些方法,如: public native int hashCode( ) protected native object clone() 这些原生代码是什么以及这些方法如何工作? 解决方案 这些方法是 Intrinsic 或在“本机”代码中用Java编写,即,特定于给定的机器。 您提到的是 Int
..
我发现许多在线(包括一些关于stackoverflow)的参考资料用于JNA用于C ++库,但我在JNA文档中找不到的任何内容表明这是可能的。似乎没有任何方法可以包装C ++类,特别是。 我需要本机访问才能使用RTAudio,但所有RTAudio的函数都是RTAudio类。所以只是为了确认,JNA不是正确的方法吗? 解决方案 这个问题相当于问如何使用JNA调用C ++实例方法,它是可
..
与JNI相比,使用JNA似乎更容易调用本机代码。在什么情况下你会使用JNI而不是JNA? 解决方案 JNA不支持c ++类的映射,所以如果你正在使用c ++库你将需要一个jni包装器 如果你需要大量的内存复制。例如,您调用一个返回大字节缓冲区的方法,更改其中的某些内容,然后需要调用另一个使用此字节缓冲区的方法。这将要求您将此缓冲区从c复制到java,然后将其从java复制回c。在这种
..
Rob Gordon的“Essential JNI:Java Native Interface”一书包含以下代码示例,用于将jstring转换为C字符串: const char * utf_string; jboolean isCopy; utf_string = env-> GetStringUTFChars(str,& isCopy); / * ...使用字符串... *
..
在Java 1.4中,您可以使用((SunToolkit)Toolkit.getDefaultToolkit())。getNativeWindowHandleFromComponent()但已删除。 看起来您必须使用JNI现在就这么做。你有JNI代码和示例Java代码吗? 我需要这个来调用Win32 GetWindowLong和SetWindowLong API调用,这可以通过Jawi
..
我模糊地熟悉 JNI ,我很想看到我的机器 - java.lang包中某些本机方法的特定实现。 Thread#currentThread(),例如。 我在[JDK_HOME] /中发现了一堆DLL jre / bin,但就像我说我正在尝试查找源代码。 有谁知道可以找到原生源代码的位置?它是否可用,或者它是否被Sun分类(oops我的意思是“我们在其中赢得它”Oracle)? 解决
..
我知道在Java中进行JNI调用时“跨越边界”很慢。 但是我想知道是什么这会让它变慢吗? 在进行JNI调用时,底层的jvm实现做了什么让它变得如此之慢? 解决方案 首先,它是值得注意的是,通过“慢”,我们谈论的事情可能需要几十纳秒。对于简单的原生方法,在2010年,我在Windows桌面上平均测量了40秒的呼叫,在我的Mac桌面上测量了11 ns。除非您正在进行许多调用,否则您将不
..
可能重复:如何访问默认包中的java-classes? I我正在使用Eclipse 3.5,我创建了一个包含一些包结构和默认包的项目。我在默认包中有一个类 - Calculations.java ,我想在任何包中使用该类(例如在 com.company.calc )。当我尝试使用默认包中的类时,它给了我一个编译器错误。它无法识别默认包中的类。问题出在哪里? Calculations.j
..
在播放这个谜题(这是一个Java关键字琐事游戏)时,我遇到了 native keyword。 Java中的native关键字用于什么? 解决方案 native 关键字应用于方法,以指示该方法是使用JNI(Java Native Interface)在本机代码中实现的。
..
我有一个主要是GUI的Java程序,它显示了从c ++命令行工具写入xml文件的数据。现在我想在java程序中添加一个按钮来刷新数据。这意味着我的程序必须调用c ++功能。 是通过系统调用从java调用程序的最佳方法吗? 将为mac os和windows编译c ++程序,并且应始终与java程序位于同一目录中。 我想生成一个可执行文件可以将c程序存储在jar中并从我的程序中调用吗?
..
我正在尝试使用 JavaCPP 从Java调用Haskell代码来帮助创建必要的JNI绑定,如此问题中所述。 这就是我使用它的方式: /javacpp.jar / build(libraris的目标) / src(包含Haskell代码) /com/example/HSCode.java(加载和使用本机的Java类) lib) 内容 H
..
第1部分 我正在开发一个应该作为jar发布的Java应用程序。该程序依赖于JNI调用的C ++外部库。要加载它们,我使用方法 System.load 使用绝对路径,这样可以正常工作。 但是,我真的想在JAR中“隐藏”它们,所以我创建了一个包来收集它们。这迫使我加载一个相对路径 - 包路径。通过这种方法,我让用户在任何目录中运行JAR,而不用担心链接DLL或厌倦以前的安装过程。 这
..
我正在使用项目中的第三方库,它包含两个.dll文件和一个.jar fie来提供JNI Wrapper。可以使用以下命令调用.jar文件中包含的第三方供应商的测试项目: java -cp product .jar com.company.samples.product.Test 这个工作正常,只要。 jar和两个dll都在同一个目录中。 在我的项目中,我将jar文
..
我正在制作文档扫描仪。我正在使用opencv进行图像处理。在相机视图中,我是最大轮廓上的矩形。处理用Native-lib.cpp编写的部分。它正确地检测最大轮廓。现在我想只捕获用native-lib.cpp编写的boudingRect。所以我想在java类中使用native-lib对象。帮助实现这一点。 Native-lib.cpp extern“C” JNIEXPORT void
..
我正在用Java编写云同步应用程序,使用.jni集成来在Windows资源管理器中虚拟化云文件系统。 现在我要实现图标叠加像owncloud一样可以看到这样一个节点的状态: 我找到了一些C#的解决方案。如果使用jni接口来访问图标处理程序,这对Java也是可行的。 任何人都知道现有的解决方案吗? PS最后一个问题是4年,所以最终有一个新的解决方案,现代系统与java8结合使
..
我确实有一个需要与 libjvm (JDK需要执行JNI绑定的库)链接的应用程序。当我使用 -L 告诉 libjvm.dylib 的位置时,它成功编译和链接。但是,当我运行二进制文件时,我得到: dyld:库未加载:@ rpath / libjvm.dylib Referenced from: /./ mybinary 原因:image not
..
我搜索了一些答案,可以通过GCJNI(现在网站已关闭)和LambdaVM完成Java与Haskell之间的通信。要使用LambdaVM / GCJNI,是否需要下载任何构建工具?我在哪里可以了解更多关于他们的信息,因为我没有在网上找到很多资源? 我想开发一个在Java和Haskell之间进行通信的应用程序(我将从Java的输入中将其传递给Haskell并在那里处理并返回结果Java)。这是我
..
我有一个 Object ,它有一个 HashMap 字段。当 Object 传递给C时,我如何访问该字段? 对象的 Class 包含以下字段: private String hello; 私人地图 params = new HashMap(); 解决方案 您的问题的答案可以归结为为什么你想要将 Map
..
如何在JNI中创建一个HashMap对象? 解决方案 这里是代码,您需要修改 jclass mapClass =(* env) - > FindClass(env,“java / util / HashMap”); if(mapClass == NULL) { return NULL; } jsize map_len = 1; jmethodID in
..