可以说我有一个名为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/