问题标签 [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 投票
2 回答
7463 浏览

java - 我如何解释这个 JVM 错误?

我有一个使用一些本机代码的 Java 应用程序,但它有问题。我想找出问题出在哪里,但我不确定如何读取 hs_err_pid 转储文件:

基本上,“j”帧指向什么?是V+158指类中的字节码偏移量吗?我怎样才能从这个追溯到游戏中的源代码行?

实际上,我很想有一个了解这些垃圾场的一般指南。那也太棒了。

0 投票
11 回答
4096 浏览

java - 用Java重写C代码还是使用JNI?

我目前正在开发一个用 Java 编写的项目。我们有一堆用 C/C++ 编写的算法(至少有几百个)需要合并到我们的项目中。我们的两个选择是使用 JNI 调用这段代码,或者用 Java 重写所有算法。

我知道使用 JNI 的后果,它会引发一系列全新的问题,这就是为什么甚至考虑用 Java 重写所有代码的原因。但是重写它的想法似乎......错误。据我所知,这些算法已经过测试并且可以正常工作,它们只是使用了错误的语言。

在这种情况下,JNI 会让这项任务变得简单吗?还是会比用 Java 重写代码更让人头疼?


编辑#1: 相关问题 - JNI 的有用性


编辑#2: 仅供参考 - 我们的 Java 项目并不意味着以任何方式可移植。这可能会消除 JNI 的缺点之一,因为它可能会降低可移植性。

0 投票
1 回答
897 浏览

java - Java 拖放到本机操作系统

我已经四处寻找了一段时间,但还没有找到任何有关如何将 ImageIcon 拖到 Windows 文件夹并获取“放置”ImageIcon 的路径的 Java 库或信息。我真的很想要一个跨 OSX/linux/Win 的平台独立解决方案,但至少想要一个 Windows 实现。以前有没有人这样做过,有没有一个项目有一个库可以做到这一点?如果不能,我能否获得关于如何开发 C++ 代码来做到这一点的方向(网站),如果可能的话,我假设必须通过 JNI 来完成。它甚至可行吗?

我在 java、python 和 perl 方面有丰富的经验,但对 C/C++ 的接触有限,这就是为什么我希望已经有一个库或一些代码可以做到这一点,如果没有的话,我更愿意弄脏我的手。

0 投票
5 回答
2591 浏览

java - 如何通知用户桌面应用程序的重要事件?

除了 MS Office 等其他软件外,我们的客户还使用我们的软件(Java Swing 应用程序开始使用 Webstart)来完成他的工作。有时,他必须毫不拖延地在我们的软件中处理重要事件。客户希望有一个突出的通知。现在他可能正在使用 Excel,所以弹出一个消息框是不够的(尽管任务栏中的条目会闪烁)。

我们需要一些类似于 Outlook 通知程序的机制,即始终可见但不会窃取焦点的弹出窗口。通知程序应一直显示,直到消息的原因消失(用户已解决问题)或用户已关闭消息(如在 Outlook 中)。此外,我们希望显示一个托盘图标并可能播放声音。

我已经尝试过 Java6 java.awt.SystemTray 以及 JDIC(版本 0.9,因为我们已经在该项目的类路径中拥有该库)等价物,但我没有找到设置 TrayIcon.displayMessage 超时的方法方法,并且消息似乎并不总是最重要的。

除了 JNI 之外,还有其他选择来实现所请求的行为吗?

如果 JNI 是唯一的选择,并且由于 Windows 是我们客户的唯一平台,那么 Outlook 通知程序是 Outlook 唯一的功能,还是可以通过 Windows API 自由使用?

或者还有哪些其他选项可以通知用户要在一个软件中执行的重要任务,而不会妨碍他在另一个软件中完成当前任务。因此,系统模式对话框是没有选择的!

0 投票
2 回答
1815 浏览

java - 处理 JNI 异常的简单代码

我想用一种很好、整洁的方式将以下 java 代码表示为 JNI:

这样做是否有一个整洁的 JNI 模式?目前,我有这个:

当然,这样处理的每个异常都会再次发生这种情况。一定有更好的方法。有什么建议吗?我对将所有现有代码移植到 JNA 不感兴趣,所以我想要一种可以在本土实现的模式,可以这么说。

0 投票
5 回答
11060 浏览

java - 在 Java 小程序中动态加载本机库

我正在尝试编写一个将从用户的串行端口读取的 Java 小程序。为此,我将Java Comm APIRXTX 库结合使用。我已经成功地设法通过本地 Java 应用程序读取数据,但我似乎无法从小程序中执行相同的操作。问题是 RXTX 库是一个本地库,我还没有找到在 Java 小程序中加载这个库的方法。我发现了两篇有趣的文章(Using JNI in Applets其中引用了这篇文章),但都已有 10 多年的历史,我想知道是否有更新的解决方案。或者,如果您可以提出替代方案,我很想听听!

0 投票
6 回答
6249 浏览

java - java stderr 去哪儿了?

我想知道,java stderr 标准在哪里?

我知道我可以使用 System.setErr 更改标准错误,它'重新分配“标准”错误输出流。',但我不知道哪个是“标准”。

我想详细说明我的问题:我有在 java (jni) 中使用的 C++ 库。问题是我似乎看不到来自我的 C++ 库的 stderr 输出。当我运行使用该库的 java api 时,我在 C++ 库中调用 assert() 并且在控制台中看不到输出。

0 投票
2 回答
1446 浏览

weblogic - 如何将 JNI 代码集成到 weblogic 中?

我正在编写一个将部署在 weblogic 中的应用程序。作为这个应用程序的一部分,我们使用了一个使用 JNI 的第三方库。如何使 .so 文件可用于 weblogic?

我尝试设置 LD_LIBRARY_PATH 并重新启动 weblogic,但没有成功

0 投票
4 回答
2608 浏览

java - 从 Java 访问本机代码的最快方法是什么?

从 Java 调用本机库的最快方法是什么?

我所知道的是

  • NativeCall - 我们目前使用的
  • JNA - 没用过,但看起来很合理
  • JNI - 看起来写起来很可怕,但如果我们得到速度,我们会这样做
0 投票
2 回答
6811 浏览

class - JNI signatures for nested classes?

I'm trying to use JNI on WindowsXP, java version:

java version "1.6.0_13" Java(TM) SE Runtime Environment (build 1.6.0_13-b03) Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)

When trying to get jclass for a nested class

jclass c = env->FindClass ("A$B"); assert (c);

the second line asserts, The same thing works ok on Linux with slightly different version of Java (1.5... IIRC).

I've tried several permutations like

LA$B; A.B LA.B;

but to no avail.

Any advice will be highly appreciated.

Martin