问题标签 [javah]

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 回答
2307 浏览

java - 错误:无法访问 org.apache.hadoop.mapred.MapReduceBase

我编写了这个 Java hadoop 程序,它将执行文件的并行索引。该文件是在 eclipse 中创建的

我通过命令编译了程序

然后对于本机方法,我尝试创建 .h 文件

收到以下错误

在目录 /export/hadoop-1.0.1/folder/classes/org/myorg 中有 3 个文件:ParallelIndexation$Map.class、ParallelIndexation$Reduce.class、ParallelIndexation.class。

0 投票
1 回答
2251 浏览

java - 找不到 javax.serverlet.GenericServlet 的类文件

我已经在类->头文件中停留了几天!

我已经通过http://netbeans.org/kb/docs/cnd/beginning-jni-linux.htmlhttp://ringlord.com/jni-howto.html在客户端上尝试了 jni 。它成功地从 JNI 的 (.cpp) 文件中返回“hello JNI C++”。这是我的步骤:

  1. 创建本机函数并在 client.java
  2. 在 Netbeans IDE 上清理并构建这个 client.java,然后生成一个 client.class 文件
  3. javah –jni [包].[类名]
  4. 像第一个参考一样创建一个动态库 C++ 项目,并将 client.h 放入源文件,并将一些 hello 代码放入 (.cpp) 文件 --->它可以工作!

但是,我尝试在 servlet 端做同样的事情,但它不起作用

  1. Servlet.java->Servlet.class:好的!
  2. Servlet.class->Servlet.h:失败!!! 错误:无法访问 javax.servlet.GenericServlet 类文件,找不到 javax.servlet.GenericServlet

以下是我迄今为止找到并尝试过的解决方案,

  • 检查包名

  • sudo gedit /etc/profile,sudo gedit .bashrc,sudo /etc/environment;在它们上添加 JAVA_HOME & CLASSPATH,并获取它们以更新,然后 echo $JAVA_HOME, echo $CLASSPATH 进行验证

  • 从http://www.jarfinder.com/index.php/java/info/javax.servlet.GenericServlet下载 servlet-api-6.0.14.jar & servlet-api-5.0.16.jar ,并添加以上两个( .jar) 通过 netbeans IDE->server->property->libraries->Add JAR

请告诉我如何解决这个问题,非常感谢!顺便说一句,我正在使用 hessianServlet

0 投票
1 回答
381 浏览

java - 为什么使用 Jni onload 但不使用 javah 的输出时出现错误?

我有这个java方法:

public static native void processBuffer(ByteBuffer bb);

用javah

完美工作

使用 Jni 加载

此表中的其他方法有效,除了对应于上面从 javah 生成的方法的最后一个方法。当然,如果我执行 JNI onload,我将有一个方法调用 fillBuffer。

有人可以解释为什么 javah 有效但 jni_onload 无效。我做错什么了吗?我有其他使用 jni_onload 的方法,所以我想远离 javah。

谢谢

0 投票
2 回答
5520 浏览

android - Android,使用 javah 生成 jni 头文件,显示找不到 org.opencv.core.Mat 的错误

javah当我在 java 类中编译本机方法以生成 JNI 头文件时,我只是遇到了一个恼人的 jni 问题。

如果该类使用了 3rd-party 包,例如:org.opencv.core.Mat,javah则会显示找不到 org.opencv.core.Mat 类的错误。

OpenCV 示例代码如下:

首先,我使用了命令

然后我将命令修改为

例外

我认为,在其中添加 opencv lib 的目录-bootclasspath是有用且必要的。错误是因为我刚刚添加了两个路径-bootclasspath或者格式有问题?

真的很迷茫。请提供一些帮助,谢谢!

0 投票
4 回答
2799 浏览

android - 安装 JDK 后 Javah 丢失(Linux)

我正在尝试在 Fedora17 上使用 Eclipse (Indigo) 设置 Android 开发。几乎所有东西似乎都可以工作,只是缺少 javah 来构建 C 头文件,用于本机(NDK / JNI)模块。

在我的工具链的 Windows 安装中,它位于 javac 所在的同一文件夹中,但在 Linux 机器上并非如此。

我之前安装了Oracle的JDK1.7,发现它对于我想做的其他事情来说是新的(但也有,没有javah),卸载它,现在安装了JDK1.6。

可能有什么问题?

0 投票
1 回答
148 浏览

c++ - 有没有办法确保 C++ .h 与相应的 C++ .cpp 文件匹配?

有问题的代码是 Java 和本机代码之间的 JNI 接口。h 文件由 javah 实用程序生成,而 cpp 文件由人创建。

如果 Java 部分被重命名,那么 javah 会生成具有相应名称的函数原型,就像它应该的那样。但是,没有什么可以确保 cpp 文件中的函数也被重命名——所有编译都照常进行。仅当 Java 代码在运行时调用本机 API 时才会出现此问题。

javah 生成的 h 文件与编译过程中人类生成的实现 cpp 文件之间如何发现不匹配?

0 投票
1 回答
1193 浏览

android - Eclipse 中的 Android 和 Javah

我想为我的 Android NDK 应用程序生成头文件,但我遇到了一些问题。我在 Eclipse 中使用外部工具配置,但出现错误:

在附件中,我附上了我的 Eclipse 项目的外部工具配置和结构的屏幕。我与它斗争了很长时间,但我被困住了。你们中有人知道我做错了什么吗?

外部工具配置

Eclipse项目结构

编辑

好的,最后我管理它。下面我附上正确配置的屏幕。

在此处输入图像描述

0 投票
2 回答
354 浏览

java - javah 可以被哄骗生成具有一致行尾的 .h 文件吗?

javah我有一个 maven 项目,它通过作为 java 库的正常构建过程的一部分执行来生成 .h JNI 文件。然后将这些 .h 文件签入源代码控制(例如 git)并用于构建随附的本机库。

一个小烦恼是生成的文件javah因行尾不同而不同,具体取决于运行它的平台。因此,如果 Mac OSX 开发人员运行构建并签入(UNIX 样式的行结尾),那么 Windows 开发人员随后将看到他们的构建已更改所有 .h 文件(更改为 Windows 样式的行结尾)。但它们实际上并没有改变——javah只是以一种依赖于平台的方式表现。

javah例如,在生成 .h 文件时,如何哄骗始终使用 UNIX 样式的行尾?似乎没有适当的命令行开关:

也许可以手动启动与javah可执行文件启动相同的类,除非"line.separator"在这样做之前显式设置属性。但是,我找不到那会是什么课程,或者在哪里。

0 投票
1 回答
13701 浏览

java - 本机方法的 Javah 命令给出异常

我将它输入到命令提示符中,但我不确定为什么它说它不是有效的类名,因为它在磁盘上具有位置和完全限定的类名。Java - 版本有效,我正在使用 JDK 运行最新版本的 JVM,CLASSPATH 也已正确配置。

课程是这样的:

命令行参数是:

0 投票
2 回答
1539 浏览

java - javah 在 Linux 中发出 Android Ndk

我正在使用 Ubuntu Linux 32 位系统,在终端中它显示没有指定类

sanidhya09@sanidhya09:~/workspace/NdkFooActivity$ javah -jni -classpath adt-bundle-linux-x86/sdk/platforms/android-4.2/android.jar;bin/classes/ -d jni/ com.example.NdkFooactivity 错误:没有指定类 bash: bin/classes/: 是一个目录

即使我试过这个

甚至我尝试了外部工具配置,在我写的参数部分

即使在日食中,我也会收到错误提示:

[HelloJni] 错误 127 HelloJni C/C++ 问题