日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【0】README

0.1) 本文旨在給出 java.lang.IllegalArgumentException 異常的原因 和 處理方法, 該異常和 javah 沒有半毛錢關系 ;
0.2) 本文附帶地給出了 javah 的作用 和 java 調(diào)用本地代碼(如 C語言)的相關知識;


【1】intro to javah (java 調(diào)用本地代碼(如C)相關)

1)重載本地方法: 如果你重載本地方法, 也就是說, 你用相同的名字提供多個本地方法, 那么你必須在名稱后面附加兩個下劃線, 后面再加上已編碼的參數(shù)類型;
2) 看個荔枝: 如果你有一個本地方法 greeting 和 本地方法 greeting(int repeat), 那么第一個稱為

Java_HelloNative_greeting__, 第二個稱為 Java_HelloNative_greeting_I;

3)javah程序:沒有人完成這些手工操作, javah 自動生成函數(shù)名,即javah導出類的頭文件; (干貨——javah 的功能)
4)具體荔枝:

  • 4.1)java 類 如下:
package com.corejava.chapter12;public class HelloNative { public static native void greeting(); }
  • 4.2)編譯該java 類:

  • 4.3)利用 javah 自動生成函數(shù)名(javah [your package].HelloNative 會產(chǎn)生一個頭文件 如 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

總結(jié)

以上是生活随笔為你收集整理的javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。