Calvin's Tech Space

          成于堅(jiān)忍,毀于浮躁

             :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
          使用JNI在native內(nèi)調(diào)用java方法時(shí),需要知道java方法的方法簽名,利用javap工具可以方便的生成簽名。由于java方法簽名在jni層的表示方法的復(fù)雜性,利用這個(gè)工具生成簽名信息可以避免人工分析帶來(lái)的錯(cuò)誤。
          如:
          ?1?package?com.demo;
          ?2?
          ?3?public?class?SigTest?{
          ?4?
          ?5?????public?static?final?String?name?=?null;
          ?6?
          ?7?????public?int?getName(int[]?data,long?index)?{
          ?8?????????return?0;
          ?9?????}
          10?}
          11?

          [calvin@calvin-desktop /tmp 15:59:50 ]
          $ javac SigTest.java
          [calvin@calvin-desktop /tmp 15:59:57 ]
          $ javap -s -p -classpath . SigTest
          Compiled from "SigTest.java"
          public class com.demo.SigTest extends java.lang.Object{
          public static final java.lang.String name;
          ? Signature: Ljava/lang/String;
          public com.demo.SigTest();
          ? Signature: ()V
          public int getName(int[], long);
          ? Signature: ([IJ)I
          static {};
          ? Signature: ()V
          }


          -s表示打印簽名信息
          -p表示打印所有函數(shù)和成員的簽名信息,默認(rèn)只打印public的簽名信息。

          注意:
          粗體部分是.class文件的文件名,不要.class后綴,否則提示
          ERROR:Could not find SigTest.class.

          posted on 2011-10-24 16:04 calvin 閱讀(4138) 評(píng)論(2)  編輯  收藏 所屬分類: AndroidJava

          Feedback

          # re: 利用javap生成方法簽名 2015-03-13 13:44 kelvin chong
          我得  回復(fù)  更多評(píng)論
            

          # re: 利用javap生成方法簽名[未登錄] 2015-03-22 10:36 Michael
          Michael  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 交城县| 青神县| 宝鸡市| 峨山| 乌鲁木齐县| 佛教| 尉氏县| 靖州| 手游| 分宜县| 靖边县| 南投县| 巴彦淖尔市| 徐闻县| 济阳县| 蕉岭县| 天门市| 建瓯市| 宁化县| 峡江县| 孝义市| 甘洛县| 毕节市| 泰顺县| 迁安市| 盐边县| 昔阳县| 绵竹市| 象山县| 万源市| 上蔡县| 平阳县| 田林县| 安平县| 台前县| 平凉市| 游戏| 邯郸县| 法库县| 靖安县| 昌乐县|