【0】README

0.1) 本文旨在给出 java.lang.IllegalArgumentException 异常的原因 和 处理方法, 该异常和 javah 没有半毛钱关系 ;
0.2) 本文附带地给出了 javah 的作用 和 java 调用本地代码(如 C语言)的相关知识;


【1】intro to javah (java 调用本地代码(如C)相关)

1)重载本地方法: 如果你重载本地方法, 也就是说, 你用相同的名字提供多个本地方法, 那么你必须在名称后面附加两个下划线, 后面再加上已编码的参数类型;
2) 看个荔枝: 如果你有一个本地方法 greeting 和 本地方法 greeting(int repeat), 那么第一个称为

Java_HelloNative_greeting__, 第二个称为 Java_HelloNative_greeting_I;

3)javah程序:没有人完成这些手工操作, javah 自动生成函数名,即javah导出类的头文件; (干货——javah 的功能)
4)具体荔枝:

  • 4.1)java 类 如下:
package com.corejava.chapter12;public class HelloNative
{  public static native void greeting();
}
  • 4.2)编译该java 类:

  • 4.3)利用 javah 自动生成函数名(javah [your package].HelloNative 会产生一个头文件 如 com_corejava_chapter12_HelloNative.h)

  • 4.4) source code of com_corejava_chapter12_HelloNative.h at a glance

    /* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_corejava_chapter12_HelloNative */#ifndef _Included_com_corejava_chapter12_HelloNative#define _Included_com_corejava_chapter12_HelloNative#ifdef __cplusplusextern "C" {#endif/** Class:     com_corejava_chapter12_HelloNative* Method:    greeting* Signature: ()V*/
    JNIEXPORT void JNICALL Java_com_corejava_chapter12_HelloNative_greeting(JNIEnv *, jclass);#ifdef __cplusplus}#endif#endif

5)抛出异常原因: 编译器对文件(带有文件分隔符 和 扩展名.java 的文件)进行操作, 而java 解释器加载类(带有点(.)分隔符; for detailed spec, please visit section 4(‘将类放入包中’) in http://blog.csdn.net/pacosonswjtu/article/details/49536995

javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法)相关推荐

  1. 用javah 导出类的头文件, 常见的错误及正确的使用方法

    ******************************************************************************** 用javah 导出类的头文件, 常见的 ...

  2. 头文件交叉定义出现--GetDocument missing storage-class or type specifiers错误的解决方法

    GetDocument missing storage-class or type specifiers的解决方法 error C2143: syntax error : missing ';' be ...

  3. 报错java.lang.IllegalArgumentException: Result Maps collection does not contain value解决

    使用mybatis报错 java.lang.IllegalArgumentException: Result Maps collection does not contain value for co ...

  4. C语言头文件.h互相包含所引发的一系列错误C2143之类的解决方法

    本文可解决的问题: 在一个头文件.h中定义一个结构体,在另一个.h文件中使用这个结构体引发错误 C2143    语法错误: 缺少")"(在"*"的前面) (编 ...

  5. Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.dataformat.yaml.YAMLFactory的解决方法

    idea升级到2021.2.3版本后,启动项目报如下错误: Caused by: java.lang.ClassNotFoundException:com.fasterxml.jackson.data ...

  6. ant 时 --java.lang.NoSuchMethodError: org.apache.tools.ant.util.FileUtils.getFileUtils 解决方法

    使用ant 时, 有可能出现java.lang.NoSuchMethodError: org.apache.tools.ant.util.FileUtils.getFileUtils的错误 但是直接命 ...

  7. 针对异常java.lang.IllegalStateException onMeasure() did not set the measured dimension解决方法

    针对异常java.lang.IllegalStateException onMeasure() did not set the measured dimension by calling setMea ...

  8. 关于java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup问题的解决方法

    在初学spring整合jdbc,mybatis,test时,通过注解开发方式获取spring容器时执行到如下语句时报错: 错误详细为: Exception in thread "main&q ...

  9. Word文件交换的电脑打开字体、排版变化的原因和解决方法!

    方案: 有时候.我们好不easy用Word写好文档,做好排版发给别人,别人会告诉你格式怎么是乱的啊,标题.正文.页眉页脚什么的格式都变了. 想尽各种办法都没能得到解决,那么出现这样的情况的原因究竟是什 ...

最新文章

  1. 执行startx后Ubuntupassword正确进不去的问题
  2. Appium+Python3 并发启动测试设备
  3. linux下wifi编程(基于netlink和nl80211.h)
  4. Linux 常見的登錄檔檔名
  5. 微信小程序实现数字为四位一组间隔(仿银行卡卡号)
  6. 漫步数学分析六——聚点
  7. 隐马尔可夫模型(五)——隐马尔可夫模型的解码问题(维特比算法)
  8. 浏览器大战之谷歌浏览器的逆袭
  9. 计算机硬盘存贮量单位,硬盘存储计量单位KB、MB、GB大小换算
  10. 不同时区时间换算_世界时区划分时差在线查询计算_时间换算器
  11. 牛客寒假训练营1 K 冒险公社(线性dp)
  12. 使用电脑麦克风的时候发现有杂音怎么办
  13. Windows AMD 安装 PyTorch
  14. 如何查看office是否是永久激活
  15. 结庐在人境,而无车马喧
  16. 徐明星系列之徐明星创办的OK资本成为RnF金融有限公司的锚定投资者
  17. python携程酒店评论_python爬取携程景点评论信息
  18. VB.net学习笔记(六)VB.net的对象
  19. 我们学校有计算机房用英语怎么说,根据中英提示,完成下列各句1、他们学校有3个计算机房??......
  20. [渝粤教育] 山东体育学院 体育教学论 参考 资料

热门文章

  1. L - Who is the Champion
  2. 【每日一题】8月4日题目精讲—购物
  3. Wannafly挑战赛23F-计数【原根,矩阵树定理,拉格朗日插值】
  4. P3295-[SCOI2016]萌萌哒【ST表,并查集】
  5. CF438D-The Child and Sequence【线段树】
  6. P3857-[TJOI2008]彩灯【线性基】
  7. P2796-Facer的程序【dp】
  8. jzoj3170-[GDOI2013模拟4]挑选玩具【容斥,状态压缩,分治】
  9. P2766-最长不下降子序列问题【网络流,dp】
  10. P2580-于是他错误的点名开始了【Trie,字符串】