You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下使用javah生成JNI头文件提示找不到类文件如何解决?

问题根因
  • 第一条javah命令执行错误的核心原因:classpath参数需要指定包层级的根目录,而非类文件所在的末端包目录。你传入的路径到org/sqlite/core,javah会基于该路径拼接org/sqlite/core/NativeDB.class查找文件,实际拼接出的路径不存在,因此报错。
  • 第二条javah命令执行错误的核心原因:Linux系统默认的CLASSPATH环境变量不会自动包含当前目录.,即使你在包根目录common-lib下执行命令,javah也不会主动扫描当前目录解析包结构,因此找不到对应类。
解决方案

在common-lib目录下执行以下命令即可正常生成头文件:

javah -classpath . org.sqlite.core.NativeDB

如果不想切换目录,也可以直接指定完整的包根路径作为classpath:

javah -classpath /u/users/maas/user123/sqlite/sqlite-jdbc-3.21.0/target/common-lib org.sqlite.core.NativeDB

补充说明:如果你使用的是JDK 1.8及以上版本,javah工具已被标记为废弃,可以直接使用javac -h参数配合Java源文件生成JNI头文件,命令格式为javac -h <头文件输出目录> NativeDB.java。

内容的提问来源于stack exchange,提问作者Roman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 14:36:00