在命令行上未指定任何类

时间:2012-07-05 06:17:46

标签: android android-ndk javah

我正在尝试一个示例JNI程序,但我无法获得javah 工具。我在C:\ Workspace \ VideoRecorder \ src \ org \ ccb \ wifo \ video \ Nativejni.java中有1个源文件Nativejni.java。 org.ccb.wifo.video是包的名称。我已经编译并在src目录中获得了一个类文件。为了生成头文件我尝试过如下

C:\Workaspace\VideoRecorder\bin>javah -jni org.ccb.wifo.video.Nativejni

但是我收到了类似的错误。

**error: cannot access org.ccb.wifo.video.Nativejni
class file for org.ccb.wifo.video.Nativejni not found
javadoc: error - Class org.ccb.wifo.video.Nativejni not found.
Error: No classes were specified on the command line.  Try -help.**

我已经google了很多,并尝试了那里找到的解决方案。但没用。 请帮帮我。

3 个答案:

答案 0 :(得分:0)

可能有很多原因。主要与-classpath有关。如果您不想手动更改类路径,可以在控制台中进行编译时执行此操作。

javah -d /dir/where/output/generated -classpath ;<absolute path to the /bin/classes> <package name>

1)记住“;”很重要,因为它将您提供的路径附加到现有路径上。

2)小心斜杠(Linux = /和Windows =)。

3)我想你明白我的绝对路径是什么意思。

答案 1 :(得分:0)

我浪费了3个小时。它是由于某种java目录问题或者是什么。无论如何这就是我做到的。

打开命令行。转到.java类所在的确切文件夹。去那里执行命令

javac HelloWorld.java

然后返回包含完整包的文件夹。键入此语句用于从类文件生成头文件。该目录必须像我的情况一样,整个包都在Java目录文件中,所以我回到那里并输入以下命令。

javah -jni com.example.aliabbasjaffri.temporary.HelloWorld

Voila,为您服务的头文件。

答案 2 :(得分:0)

你必须输入classpath,请尝试这个,

 Javah - jni -classpath C:\Workspace\VideoRecorder\src\  org.ccb.wifo.video.Nativejni