问题标签 [java-native-interface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4133 浏览

java - 从 java java->jni.dll ->app.dll -> app.dll 调试 dll

如何调试 java 应用程序未加载的 dll。

场景是这样的:我的 java 应用程序正在加载使用另一个 dll 的 jni.dll,而该 dll 正在使用另一个 dll。

java<->jni.dll<->dll<->dll

我有所有模块的源代码

我在调试 jni.dll 时使用了 Visual Studio Express,但我应该怎么做才能调试其他 dll?

0 投票
2 回答
2104 浏览

java - Java I/O using inpout32.dll

I am trying to control some LEDs wired to the parallel port on Windows XP. The easiest solution would be Inpout32.dll from Logix4u.net. I have found many source code samples in various languages (C++, Visual Basic, C#) but nothing using Java.

Do you know any tutorials about calling DLL functions from Java ? (what I have found so far on Google are not so advanced).

Environment: Java 1.6.0, Windows XP

0 投票
4 回答
8772 浏览

java - JNA 导致 EXCEPTION_ACCESS_VIOLATION?

我的 Java UI 意外终止并转储了一个hs_err_pid文件。该文件显示“崩溃发生在 Java 虚拟机之外的本地代码中。” JNA 是我们使用的唯一本机代码。有谁知道可能导致此问题的任何 JNA 版本的任何已知问题或错误。我在下面的错误文件中包含了一些内容。

0 投票
6 回答
45801 浏览

java - 在 Java Swing 中,如何获得对窗口的 Win32 窗口句柄 (hwnd) 引用?

在 Java 1.4 中,您可以使用 ((SunToolkit) Toolkit.getDefaultToolkit()).getNativeWindowHandleFromComponent() 但这已被删除。

看起来您现在必须使用 JNI 来执行此操作。您是否有 JNI 代码和示例 Java 代码来执行此操作?

我需要它来调用 Win32 GetWindowLong 和 SetWindowLong API 调用,这可以通过 Jawin 库来完成。

我想要一些非常精确的东西,这样我就可以传递对 JDialog 或 JFrame 的引用并获取窗口句柄。

使用 JNI 的 Swing 透明度可能是相关的。

0 投票
5 回答
2216 浏览

java - JNI 的用处

我已经做了几年Java 开发人员,听说你可以用JNI 做一些非常有用和强大的事情。我不知道我是否只是不需要使用它,或者它是否与我不太相关;但我根本不用碰它。

我想知道 Java 这方面的用处是什么。例子会很棒。

0 投票
3 回答
8979 浏览

netbeans - 使用 JNI 的 NetBeans 库

我可以定义一个在 NetBeans 中使用 JNI 的库吗?

似乎库定义只允许罐子或文件夹。

构建应用程序时,如何确保 DLL 遵循 jar 文件?

0 投票
1 回答
496 浏览

java - 默认在哪里安装本地 Java 库?

我正在将 JNI 绑定与 C++ 库集成。

该库遵循通常的约定:/usr/local默认情况下安装根目录,并且可以使用--prefix参数修改为./configure; .a.so文件进入${prefix}/lib;等等

JNI 绑定生成两个新库,libfoojni.so(本机部分)和libfoo.jar(Java 部分)。

在这种方案下,放置这些文件(例如${prefix}/java)的常规位置是什么?

允许用户提供一个单独的 Java 根目录(例如/usr/share/java)是否更可取?

应该libfoojni.so进入${prefix}/lib或进入一些特定于 Java 的子目录?

0 投票
3 回答
3374 浏览

java - 在 Valgrind 下的 Sun VM 中运行 JNI 应用程序

sun JVM 在 valgrind 下运行时会发出很多额外的噪音,这使得跟踪应用程序中的内存问题非常具有挑战性。

我想找到一个抑制文件或 VM 运行时模式,它可以去除虚假的内存错误,以便在这种情况下将小麦与谷壳分开。有什么建议么?

0 投票
2 回答
3584 浏览

java - 如何:Java 侦听 C 线程捕获的事件

我想创建一个 Java 程序来侦听和响应 C 中线程捕获的事件。
有人可以解释如何使用 JNI 实现这一点,或者指向在线教程吗?

谢谢你。

0 投票
2 回答
1093 浏览

java - 如何使用 Eclipse TPTP 分析 JNI 应用程序?

我需要从 C 应用程序分析由 JNI 调用 API 启动的 Java 应用程序,自然 TPTP 工具似乎是一个不错的起点。但是,我可以启动应用程序,但我不知道如何连接到它以进行分析。我意识到这属于“愚蠢的新手”桶,但我真的有点迷路了。请允许我解释一下:

我已将 JVM 选项“ -XrunpiAgent:server=controlled”添加到我的 java VM 启动选项中。

我已经添加了$ECLIPSE_HOME/plugins/org.eclipse.tptp.platform.ac.linux_ia32_4.4.1.v200808290100/agent_controller/lib to my LD_LIBRARY_PATH

我正在针对 Sun Java 1.5.0_10 JVM 库运行

在 Eclipse 中,我有一个 Java 项目,其中包含我希望分析的代码。我没有分析启动配置,我也不真正知道需要进入它们的内容。

正是在这一点上,我的知识走到了尽头。当我启动我的基于 JNI 的应用程序时,它只是在 VM 启动期间停止并等待,大概是代理控制器连接。我需要采取哪些步骤才能实现这一目标并从中获取信息?