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

java-native-interface - OpenSolaris Brandz 和 JNI 是一个很好的组合吗?

我想在 OpenSolaris 机器上运行一个 java 应用程序,但这个应用程序使用 dll/所以我只有 linux 二进制文件。有可能吗,这是因为我对 OpenSolaris Brandz 功能一无所知,我可以在 linux brandz 上部署 dll 并从在 OpenSolaris 端运行的 jvm 链接到它?

0 投票
2 回答
1050 浏览

android - 将复杂的原生应用程序编译到 Android ARM 的完整方法

这是我的第一个 S/O 问题,请温柔!

我想了解更多关于将 C 应用程序移植到本机 ARM 以在 Android 设备上使用的信息。

我可以使用源代码附带的预构建工具链制作简单的程序,但是如何将此工具链与多个文件且需要配置和制作的应用程序一起使用?

0 投票
4 回答
15554 浏览

java - C 和 C++ 中的 JNI 调用不同?

所以我在 C 中有以下代码,它利用了 Java Native Interface,但是我想将它转换为 C++,但我不确定如何。

Java程序:

JNI 与 C 和 C++ 交互的区别是什么?任何帮助是极大的赞赏。

谢谢,皮特

0 投票
3 回答
2120 浏览

eclipse - 由于路径长,eclipse插件不加载dll

我正在构建一个 Eclipse 插件(一个注释插件,但它最终是一个 Eclipse 插件)。我的插件依赖的插件之一需要加载本机 dll。

问题是,这取决于此类 dll 在磁盘中的位置而失败。如果它长于某个阈值,我会收到以下错误

java.lang.UnsatisfiedLinkError: nlsxbe (The filename or extension is too long.) at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:952) at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:921) at java. lang.System.loadLibrary(System.java:452) at lotus.domino.NotesThread.load(Unknown Source) at lotus.domino.NotesThread.checkLoaded(Unknown Source) at lotus.domino.NotesThread.sinitThread(Unknown Source) at com .atempo.adam.lotus.plugin.views.TopicView.createPartControl(TopicView.java:609)

我已经添加了 Path env var 的路径,并且还注册了 dll 无济于事。我的环境是 ms vista profesional、java1.5、eclipse3.4(和 lotus 8)

有人有线索吗?

提前谢谢了。

0 投票
3 回答
2053 浏览

c++ - 使用 JNI 在 C++ 中调用方法?

所以我一直在研究 JNI 调用,以便我可以与一些预先编写的 C++ 程序进行交互,我不知道任何 C++,但我正在尝试学习一些基础知识。我刚刚尝试对我的 JNI 方法之外的方法进行简单调用,但总是收到以下错误:

错误 c3861 'myMethod': 找不到标识符

有什么睿智的话?

0 投票
4 回答
3192 浏览

c++ - C/C++ 反射和 JNI - 一种调用尚未编写的本机代码的方法

我正在实现一个 Java 软件,它有望允许 C 库作为插件。为了调用这些未来函数,我需要以某种方式在 Java 中创建一个本机函数,我可以从中调用尚不存在的代码。方法签名将是静态的,但方法和类名可能会更改。

有没有办法检查加载的库或可用功能?我希望它的工作方式如下:

在我的 Java 类中,我将有一个函数;

它将调用我的 C 库中的函数;

我可以从中获取类和方法名称,如果它们存在则调用它们,如果它们不存在则抛出异常。

我想我正在寻找的是某种 Java 风格的反射,但在 C 中或在 C++ 中失败。

我怎样才能做到这一点?

0 投票
3 回答
441 浏览

java - 启用 C 应用程序作为 Web 服务

我们有一个用 C 语言编写的与 Oracle 数据库交互的应用程序。这个应用程序是一个可执行文件并在 Unix 平台上运行。我们需要通过 http 将此应用程序公开为 Web 服务以供其他人使用。

我想到了将 JNI 和 CXF 用于 web 服务并在 tomcat 中运行应用程序。

这是一个正确的解决方案还是有其他可能性?

我发现Axis2支持C语言编写webservice。我没有C语言的经验。C语言中的Axis2好吗?我可以使用什么 http 服务器来部署应用程序?在这种情况下,Apache 网络服务器是否足够?

编辑:命令行不是一个选项,就好像我提到它是一个 exe 一样,但我必须公开的部分没有任何可用的命令行,而且它有点难,因为它需要复杂的数据结构作为输入。

0 投票
14 回答
53169 浏览

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

命令:

结果:

我已经正确设置了类路径,但我仍然收到此javah错误。

对此的任何解决方案都会很有帮助。

0 投票
1 回答
500 浏览

android - JNI技术。开发时在Android或Linux平台上,所以呢?

我在为 Android 平台开发本机 C/C++ 共享库时遇到问题。众所周知,Android 使用 Java 语言进行上层开发。现在我已经使用它的仿生库将我使用 ASCII C/C++ 的引擎代码移植到了 Android,但是当需要设计用户界面时,我必须使用 JNI 来调用我的引擎代码。

据我所知,这是唯一的选择。问题是我的引擎拥有数百个导出 API。如果我使用 JNI 技术。我需要将这些 API 封装到一个新的共享库中使用,这将花费大量时间进行开发和测试。

有人可以对这种情况提出一些建议吗?顺便说一下,我不熟悉 java 或 JNI 技术。

尖端:

当我在网上搜索时,我发现了一些 JNI 生成器的开源,例如 JNative 等。直到现在我不知道它是否适用于 Android 平台。

0 投票
1 回答
889 浏览

c++ - JNI调用使用LogonUser验证用户?

C++ 菜鸟在这里想知道如何通过 Java servlet 对 Windows 用户进行身份验证。

这是我汇总的代码,用于从我的 java servlet 中使用用户的用户名域和密码进行 JNI 调用:

尝试编译时出现以下错误:

我假设我不包括我需要的东西。任何帮助是极大的赞赏。