Javah 找不到我的类



我在使用javah生成JNI的C头文件时遇到了麻烦。

下面是我在<project-dir>bin目录下使用的脚本:
javah -classpath C:PROGRA~2Androidandroid-sdkplatformsandroid-8android.jar com.test.JniTest

返回:

ERROR: Could not find class file for 'com.test.JniTest'.

尽管JniTest类肯定在comtest中。

我做错了什么?

指定类路径只包含 android.jar

您还需要包含存储类的位置。在您的示例中,它是当前目录,因此您需要使用.(在Windows上由;分隔)。调用应该是这样的:

javah -classpath C:PROGRA~2Androidandroid-sdkplatformsandroid-8android.jar;. com.test.JniTest

如果是Linux或MAC-OS,请使用":"字符分隔classpath的目录,而不是";"字符。示例:

javah -cp /Users/Android/android-sdk/platforms/android-xy/android.jar:. com.test.JniTest

您应该将目录更改为<project-dir>binclasses;然后,执行以下命令:

javah -classpath C:PROGRA~2Androidandroid-sdkplatformsandroid-8android.jar;. com.test.JniTest


我使用下面的命令文件来生成头文件:jHdr.cmd在我的桌面:

@echo on
SET PLATFORM=android-8
SET ANDROID_SDK_ROOT=C:Androidandroid-sdk
SET PRJ_DIR=D:WorkspacessqLiteraSQLite
SET CLASS_PKG_PREFIX=ra.sqlite
cd %PRJ_DIR%binclasses
javah -classpath %ANDROID_SDK_ROOT%platforms%PLATFORM%android.jar;.  %CLASS_PKG_PREFIX%.%~n1
pause


根据需要调整变量…
把这个文件放到桌面上,然后把你的。java文件从eclipse拖到jHdr.cmd,结果在%PRJ_DIR%binclasses目录下

最新更新