2012-07-12 110 views
1

可以說我有一個名爲Scope的類,它具有一個名爲Variable的嵌套類,我如何使用javap -s來獲取類中的JNI簽名?我試着做爲嵌套類的方法獲取JNI簽名

javap -classpath <classpath> -s Scope$Variable

,但這似乎並沒有工作。似乎只是給我提供了與我只輸入「範圍」而不是「範圍$變量」相同的信息。

感謝所有幫助

回答

4

如果您在Linux/Unix環境下運行javap,那麼$將由外殼由javap解釋,而不是。因此它可以逃脫。最簡單的解決辦法是:

javap -classpath <classpath> -s 'Scope$Variable' 

不帶引號的外殼(我假設一個* SH後代)會嘗試與環境變量Variable的內容來替代$Variable部分。我假設沒有這樣的變量存在,因此沒有任何東西(如「空字符串」)被替換。因此javap只看到

javap -classpath <classpath> -s Scope 

如果是從Windows上運行的命令,那麼這是不是一個問題,因爲神奇的稟性是%

順便說一句:我不知道爲什麼JNI在這裏涉及。

0

工作對我來說:javap -s com.oracle.net.Sdp$SdpSocket

Compiled from "Sdp.java" 
class com.oracle.net.Sdp$SdpSocket extends java.net.Socket{ 
com.oracle.net.Sdp$SdpSocket(java.net.SocketImpl) throws java.net.SocketExcept 
ion; 
    Signature: (Ljava/net/SocketImpl;)V 
}