13

我在使用javah.

这是我站在<project-dir>\bin目录中时使用的脚本:

javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar com.test.JniTest

作为回报,我得到:

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

即使课程JniTest肯定在\com\test.

我究竟做错了什么?

4

3 回答 3

19

您指定类路径 android.jar包含.

您还需要包括存储类的位置。在您的情况下,它是当前目录,因此您需要使用(在 Windows 上.由分隔)。;调用应如下所示:

javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar;. com.test.JniTest
于 2011-10-03T13:38:12.733 回答
18

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

javah -cp /Users/Android/android-sdk/platforms/android-xy/android.jar:. com.test.JniTest
于 2013-09-21T05:24:06.577 回答
10

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

javah -classpath C:\PROGRA~2\Android\android-sdk\platforms\android-8\android.jar;. com.test.JniTest


我正在使用以下命令文件生成标题: jHdr.cmd在我的桌面上:

@echo on
SET PLATFORM=android-8
SET ANDROID_SDK_ROOT=C:\Android\android-sdk
SET PRJ_DIR=D:\Workspaces\sqLite\raSQLite
SET CLASS_PKG_PREFIX=ra.sqlite
cd %PRJ_DIR%\bin\classes
javah -classpath %ANDROID_SDK_ROOT%\platforms\%PLATFORM%\android.jar;.  %CLASS_PKG_PREFIX%.%~n1
pause


根据需要调整变量...
将此文件放在桌面上,然后将 .java 文件从jHdr.cmdecrise 拖到 ,结果在 %PRJ_DIR%\bin\classes 目录下

于 2012-09-21T12:52:13.450 回答