【问题标题】:"No classes were specified on the command line" error running javah“没有在命令行上指定类”错误运行 javah
【发布时间】:2012-04-07 19:22:20
【问题描述】:

我在 Windows 7 上,在 Cygwin 1.7.13 中使用 javah。我目前正在尝试为我的 Android 项目生成原生 C++ 文件的头文件。

在项目根目录下运行,我正在执行的命令是:

walb@nought /cygdrive/c/Users/walb/stuff/work/workspace/SoundBites
$ javah -verbose -d jni/ -classpath bin/classes uk.co.biogen.SoundBites.activity.SoundBitesActivity

结果:

error: cannot access uk.co.biogen.SoundBites.activity.SoundBitesActivity
class file for uk.co.biogen.SoundBites.activity.SoundBitesActivity not found
javadoc: error - Class uk.co.biogen.SoundBites.activity.SoundBitesActivity not found.
[ Search Path: C:\Program Files\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\sun
rsasign.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\charsets.j
ar;C:\Program Files\Java\jdk1.6.0_22\jre\classes\bin/classes ]
Error: No classes were specified on the command line.  Try -help.

Most 中的 topics 我有 read indicate,我的 -classpath 参数是正确的。错误消息中有趣的一点是:

[ Search Path: C:\Program Files\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\sun
rsasign.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_22\jre\lib\charsets.j
ar;C:\Program Files\Java\jdk1.6.0_22\jre\classes\bin/classes ]

该列表中的最后一个路径是C:\Program Files\Java\jdk1.6.0_22\jre\classes\bin/classes,这表明 javah 对参数的解释完全错误。我能想到的唯一可能有帮助的是调用 javah 的另一种方法,但将其目录添加到 PATH 是我能想到的唯一方法。

【问题讨论】:

    标签: android-ndk cygwin


    【解决方案1】:

    刚刚在原生 Android 中实现了我想要的。以牺牲速度和实际做我想做的事为代价,更容易集成和理解正在发生的事情。

    【讨论】:

      【解决方案2】:

      这是否有效(在 -classpath 参数的路径前添加分号):

      javah -verbose -d jni/ -classpath ;bin/classes   uk.co.biogen.SoundBites.activity.SoundBitesActivity
      

      【讨论】:

      • 对不起,我这么晚才回来。试过你的想法 - 遗憾的是不起作用,bin/classes 被视为有一个正斜杠。不过,别担心;我最终放弃了尝试让 NDK 工作,而是在 Android 中实现了我想要的。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 2018-01-22
      • 2020-07-02
      • 2021-07-19
      • 1970-01-01
      相关资源
      最近更新 更多