D:\我的文档\workspace\PrepareForExam\src>javah -classpath D:\我的文档\workspace\
PrepareForExam\src\com\example\myclass -d d:/ -jni com.example.myclass.jni_test
错误:无法访问 com.example.myclass.jni_test
未找到 com.example.myclass.jni_test 的类文件
javadoc: 错误 - 找不到类 com.example.myclass.jni_test。
Error: 未在命令行中指定任何类。请尝试使用 -help。

本来想用javah生成java调用C语言用的头文件的,没想到使用上一直受挫。在这里简单地介绍以下javah的使用

假设我们已经有了这个类,准备用它生成调用C语言的头文件。另外,这个Java文件是在路径“D:\我的文档\workspace\PrepareForExam\scr”下,包“package com.example.myclass;”中的

package com.example.myclass;
public class jni_test {
private native final void init();
private native final void init2(int a,int b);
}

1、首先我们要编译一下这个类,以便得到类对应的*.class

为了偷懒,给这个类直接添上一个main方法,将这类作为运行一下(如下图所示)。这样子我们就得到了jni_test对应的class文件,在路径“D:\我的文档\workspace\PrepareForExam\bin\com\example\myclass”下。

2、我们要开始写javah的命令,以便生成对应的C语言头文件

D:\我的文档\workspace\PrepareForExam\src>javah -classpath D:\我的文档\workspace\PrepareForExam\bin -d d:/ -jni
 com.example.myclass.jni_test

其中java中各个命令的意思是

-classpath <路径> 用于装入类的路径
-d <目录> 输出目录
-jni 生成 JNI样式的头文件(默认)

注意到以上我们命令中指定的路径

注意到我们的命令符的执行位置是源代码目录”D:\我的文档\workspace\PrepareForExam\src

-classpath  后面的路径是指包”com.example.myclass”所在的根路径(如下图所示)

-jni 后面的路径是包名+类名

3、最终输出的C语言头文件

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_example_myclass_jni_test */ #ifndef _Included_com_example_myclass_jni_test
#define _Included_com_example_myclass_jni_test
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_example_myclass_jni_test
* Method: init
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_example_myclass_jni_1test_init
(JNIEnv *, jobject); /*
* Class: com_example_myclass_jni_test
* Method: init2
* Signature: (II)V
*/
JNIEXPORT void JNICALL Java_com_example_myclass_jni_1test_init2
(JNIEnv *, jobject, jint, jint); #ifdef __cplusplus
}
#endif
#endif

Javah提示未找到 ..的类文件的更多相关文章

  1. Javah提示未找到 ..的类

    Javah相关错误,如下图所示:

  2. oracle 安装提示未找到文件安装

    安装oracle 过程中提示未找到文件 E:\app\xxj\product\11.2.0\dbhome_1\owb\external\oc4j_applications\applications\W ...

  3. CentOS 7 使用unzip解压zip文件提示未找到命令的解决方法

    故障现象: 解决方法: 如果你使用unzip命令解压.zip文件,提示未找到命令,可能是你没有安装unzip软件,下面是安装方法 [root@localhost www]# yum install - ...

  4. ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案

    摘要: ueditor1.3.6jsp版在struts2应用中上传图片报"未找到上传文件"解决方案 在struts2应用中使用ueditor富文本编辑器上传图片或者附件时,即使配置 ...

  5. VS Code 提示‘未找到Git。请安装Git,或在“git.path”设置中配置’

    一.情况说明 1.描述 从Git上克隆出代码,用vscode打开项目提示“未找到Git.请安装Git,或在“git.path”设置中配置” 2.截图 二.报错原因 .没有安装Git .没有设置Git路 ...

  6. oracle select into 的时候提示未找到数据

    ); begin '; --在select into 后面添加exception 错误处理机制 exception when no_data_found then version:= 'hhh '; ...

  7. Ubuntu、Windows输入命令appium-doctor提示未找到命令

    输入命令:appium-doctor时,一直报错,提示“未找到命令”,但是输入命令:appium -v能够正确输出我安装版本,这是怎么回事呢? 原来appiu-doctor在1.5.3版本之后没有了需 ...

  8. 安装的SQL Server2008 R2版的连接不到本地数据,提示未找到或无法访问服务器。----复制自百度知道

    安装的SQL Server2008 R2版的连接不到本地数据,提示未找到或无法访问服务器.使用Windows身份验证 2012-09-17 00:23hj168926 | 分类:数据库DB | 浏览3 ...

  9. VS2012 提示未找到与约束 ContractName 匹配的倒出

    问题描述: 今天由于开发需要,我安装了一下 Vs 2015 按照之后 打开原来的项目 vs2012 打开,点击类文件提示错误 未找到与约束 ContractName 匹配的倒出 解决办法: 1  去微 ...

随机推荐

  1. AIX系统程序异常不释放光驱处理

    AIX操作系统有时会出现程序异常不释放光驱,可以用以下命令进行处理: #fuser -kxuc /dev/cd0 或者 #fuser /dev/cd0 以上命令会列出访问光驱设备的所有进程,然后使用k ...

  2. LR工具使用之场景设置

    LR工具使用之场景设置 一.操作步骤 1.运行loadrunner,进入运行负载测试控件:

  3. VC++ 如何在显示对话框的时候,指定焦点控件!

    很简单: 在你的CAddDlg类的OnInitDialog函数中加上你上面的代码GetDlgItem(IDC_EDIT1)->SetFocus();最后记得return FALSE; 其实,不知 ...

  4. python json学习之路2-认识python种的json模块

    1.从python原始类型向json类型的转化过程,具体的转化对照如下: 2.从json到python的类型转化对照如下: 3.json提供四个功能:dumps, dump, loads, load ...

  5. [python] python 中的" "和' '都是完全转义

    dict = {"a" : "apple", "b" : "banana", "g" : " ...

  6. TCP通讯socket自定义协议的实现

    转发(JAVA):http://blog.csdn.net/u010818425/article/details/53448817 一个简单的自定义通信协议(socket),http://blog.c ...

  7. ABP的工作单元

    http://www.aspnetboilerplate.com/Pages/Documents/Unit-Of-Work 工作单元位于领域层.   ABP的数据库连接和事务处理: 1,仓储类 ASP ...

  8. jsAddress

    demo.html <!DOCTYPE html><html><head> <title>纯JS省市区联动</title> <scri ...

  9. [原]iOS自带社会化分享框架——Social.framework

    http://m.blog.csdn.net/blog/u012189584/43236379 Social.framework支持的分享平台(打开手机上的“设置”即可看到)(如Twitter.fac ...

  10. FreeBSD_11-系统管理——{Part_4 - 内核参数定制}

    特别提醒:自行定制的内核,必須经过全方位测试无誤后,方能用于生产环境 基于:/usr/src/sys/amd64/conf/GENERIC cpu HAMMER ident TEST_kernel # ...