可以说我有一个名为Scope的类,它有一个名为Variable的嵌套类,如何精确地使用javap -s获取内部类的JNI签名?我试着做

javap -classpath <classpath> -s Scope$Variable

,但这似乎不起作用。好像我得到的信息就像我只键入“ Scope”而不是“ Scope $ Variable”一样。

谢谢你的帮助

最佳答案

如果在Linux / Unix环境中运行javap,则$将由外壳程序而不是javap解释。因此,它必须逃脱。最简单的解决方案是:

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


没有引号的外壳程序(我假设是* sh后代)将尝试用环境变量$Variable的内容替换Variable部分。我假定不存在这样的变量,并且没有任何替换(例如在“空字符串”中)。因此javap仅看到

javap -classpath <classpath> -s Scope


如果您是从Windows运行命令,那么这不是问题,因为魔术字符为%

顺便说一句:我不知道为什么JNI参与其中。

关于java - 获取JNI签名以获取嵌套类的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11444407/

10-10 05:48