【问题标题】:No classes were specified on the command line没有在命令行上指定类
【发布时间】:2012-07-05 06:17:45
【问题描述】:

我正在尝试一个示例 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.**

我搜索了很多并尝试了那里找到的解决方案。但是没有用。 请帮帮我。

【问题讨论】:

  • 请提供一些帮助

标签: android android-ndk javah


【解决方案1】:

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

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

1) 记住“;”很重要,因为它将您提供的路径附加到已经存在的路径。

2) 小心使用斜线(Linux = / 和 Windows = )。

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

【讨论】:

    【解决方案2】:

    我在这上面浪费了大约 3 个小时。这是由于某种java目录问题或什么。不管怎样,我就是这样做的。

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

    javac HelloWorld.java
    

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

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

    瞧,头文件为您服务。

    【讨论】:

      【解决方案3】:

      你必须输入类路径,请试试这个,

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-27
        相关资源
        最近更新 更多