JNI javah 找不到 'xxxx' 的类文件。

JNI 生成 头文件

同样的命令行 

javah -verbose -classpath ..\..\..\..\..\..\..\AndroidSDK\platforms\android-28\android.jar;. -jni com.example.myapplication.MainActivity

注意:

指定 -classpath 的时候   在 Win 上用 分号;  在 Mac OS 使用 : 分隔多个路径

 

Windows 10  PowerShell   执行    

当我用 :替换 ; 的时候   报错变成了找不到类文件

在这里爬了挺久的坑   甚至指定sdk 路径的 盘符 有 :号  我都改成了相对路径   最终发现 在cmd 是可以执行成功的

 

Windows 10  cmd  执行  是可以正常生成的。

对  PowerShell 与 cmd 的差别还是不知道    掉了这个坑  记录一下

 感觉 是因为   PowerShell  对于   Linux 和 Win 风格的兼容  让他 无法 分清 这里面   指定 -classpath 时的 分隔符  在 Win 下的 ; 和 在 Linux 下的 ;导致的 这个问题。

 

我的  jdk 版本 

 

总而言之:

如果 在 Win10 下的 cmd 中, 如果出现了 javah 找不到 类。那么 对照两个位置

1、 执行 javah 的路径  是否在  app\src\main\java 文件夹  如果不在  那么尝试 cd 进入 java 文件夹 执行。 因为我这里 它找 java 文件 是相对当前文件夹的 。 参数  -classpath 指定的

2、 -classpath   中 多个路径 的分隔符  在 Linux 中是 :  在 Win 下是 ;  一定要对应  否则就会  找不到  java 文件。

posted @   lesten  阅读(690)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示