利用javap生成方法簽名

使用JNI在native內調用java方法時,需要知道java方法的方法簽名,利用javap工具可以方便的生成簽名。由於java方法簽名在jni層的表示方法的複雜性,利用這個工具生成簽名信息可以避免人工分析帶來的錯誤。
如:

package com.demo;
 
 public class SigTest {
 
     public static final String name = null;
 
     public int getName(int[] data,long index) {
         return 0;
     }
 }
 

[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表示打印所有函數和成員的簽名信息,默認只打印public的簽名信息。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章