获取JNI签名嵌套类的方法(Get JNI Signature for methods of nes

2019-09-19 09:19发布

比方说,我有一个名为范围有所谓的可变嵌套类类,究竟我该使用javap -s进去类的JNI签名? 我试着做

javap -classpath <classpath> -s Scope$Variable

,但这似乎并没有工作。 这似乎只是让我同样的信息,如果我只输入“范围”,而不是“范围$变量”。

谢谢你的帮助

Answer 1:

如果你正在运行javap在Linux / Unix环境,那么$将由shell来解释,而不是由javap 。 因此,每亩逃脱。 最简单的解决办法是:

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

不带引号的外壳(我假设一个* SH后代)将尝试替代$Variable部分与环境变量的内容Variable 。 我认为没有这样的变量存在有前什么(如在“空字符串”)被取代。 因此javap只看到

javap -classpath <classpath> -s Scope

如果是从Windows上运行的命令,那么这是不是一个问题,因为神奇的禀性是%

BTW:我不知道为什么JNI这里所涉及的。



Answer 2:

作品对我来说: 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
}


文章来源: Get JNI Signature for methods of nested classes