【发布时间】:2012-06-23 13:03:00
【问题描述】:
我有一个用于 JNI 的简单类,我需要将其导出到头文件 (.h)。
我了解到我需要使用javah 命令,方法是转到项目的src 文件夹,然后输入:
javah -jni com.main_package.NativeClass
在 Windows 上可以正常工作,但在我的主操作系统 (Linux) 上却不行。它一直告诉它找不到课程。我尝试使用该命令的多种组合并在许多可能的路径上运行它,但它不起作用。我关注了很多教程和网站(包括这里)并尝试了它们的组合。
我什至尝试过使用 Eclipse 的外部工具,如 here 所示,但它也显示了同样的错误。
我得到的错误如下所示:
error: cannot access com.main_package.NativeClass
class file for com.main_package.NativeClass not found
javadoc: error - Class com.main_package.NativeClass not found.
Error: No classes were specified on the command line. Try -help.
谁能帮帮我?我真的很喜欢在 Linux 上工作,并且不想每次需要使用这个工具时都切换操作系统。
正确答案如下:
-
对于控制台,转到“bin/classes”文件夹并运行我使用过的命令:
javah -jni com.main_package.NativeClass
对于 Eclipse,使用我提供的链接,但不要使用
${project_loc}/bin/,而是使用${project_loc}/bin/classes/,然后,在包资源管理器中,转到 NativeClass.java,然后运行外部工具。输出将与 java 文件的路径相同。
【问题讨论】:
标签: android linux android-ndk java-native-interface javah