java - 使用javah生成头文件

标签 java c++ javah

我正在尝试使用 eclipse 从 java 文件生成供本地使用 (c/c++) 的头文件。 当我在这个位置时,我只能从命令行访问 javah:

C:\Program Files (x86)\Java\jdk1.7.0_51\bin>

但我不能像这样引用我的 java 类:

C:\Program Files (x86)\Java\jdk1.7.0_51\bin>javah -jni com.or.jnihelloworld.nativeclass

因为该类位于此文件夹之外:

C:\Users\Or Azran\workspace\JniHelloWorld\src\NativeLib.java

我想把这个文件放到一个 jni 文件夹中:

C:\Users\Or Azran\workspace\JniHelloWorld\jni

我如何从命令行执行此操作? 一个好的旅游也会很棒

最佳答案

这里似乎有几个问题需要解决。

首先。我不确定您的源代码是否设置正确。如果你的类确实是 com.or.jnihelloworld.nativeclass 那么它应该在目录中:C:\Users\Or Azran\workspace\JniHelloWorld\src\com\or\jnihelloworld\nativeclass.java

但是,假设类/目录是正确的。 javah命令使用-d指定输出目录,可以用-classpath指定路径所以

javah -classpath "C:\Users\Or Azran\workspace\JniHelloWorld\src\" \ 
-d "C:\Users\Or Azran\workspace\JniHelloWorld\jni" com.or.jnihelloworld.nativeclass

应该把文件放在你想要的地方。

关于java - 使用javah生成头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22541671/

相关文章:

java - 分发一个 jar

Javah在类B上操作时无法识别类(B)中提到的类(A)

java - 如何使用 Javah 创建 C 头文件?

C++/Java 继承 vs. 委托(delegate) vs. 等等

hadoop - 在Mac OS X 64位上hadoop-2.2.0竞争失败

java - Hadoop。如何从 Mapper 获得工作

java - 如何捕捉在 Alfresco 的 Activiti 6 中发送电子邮件时发生的错误?

java - Groovy 控制台不输出旧值

c++ - 让函数在不指定模板参数的情况下获取指向模板对象的指针

c++ - 解释 C++ 中的运算符重载