当我需要获取方法签名时android.content.ContextWrapper,我会去
"C:\Program Files (x86)\Android\android-sdk\platforms\android-18" 放置android.jar 然后执行
javap -s -classpath android.jar android.content.ContextWrapper > out.txt
现在,我需要获取java.io.File. 对应的 .jar 是如何命名的?
它存在于rt.jar. 您可以使用JarFinder来查找 jar 和类。
它存在于libjdk安装目录的文件夹中。
这是rt.jar来自你的 JRE 或 JDK,即libJRE 里面。鉴于您使用的是 Windows,我将前往:
C:\program files\java\jdk1.7.0_25\jre\lib
对于 JDK(将位置更改为您的 JDK)。
android.jar 也有那个文件,但前者应该足以满足非 android 实现。
从 Android SDK 16 开始(我还没有在 Android 18 中测试过)android.jar也有这个java.io.File类。
尝试将其作为 ZIP 文件打开并查看其中包含哪些文件。
ContentWrapper在android/content文件夹中。
File存在于java/io文件夹中。
这是javap输出的前几行android.jar java.io.File
Compiled from "File.java"
public class java.io.File implements java.io.Serializable, java.lang.Comparable<java.io.File> {
public static final char separatorChar;
Signature: C
public static final java.lang.String separator;
Signature: Ljava/lang/String;
public static final char pathSeparatorChar;
Signature: C
public static final java.lang.String pathSeparator;
Signature: Ljava/lang/String;
static final boolean $assertionsDisabled;
Signature: Z
int getPrefixLength();
Signature: ()I
public java.io.File(java.lang.String);
Signature: (Ljava/lang/String;)V
public java.io.File(java.lang.String, java.lang.String);
Signature: (Ljava/lang/String;Ljava/lang/String;)V
它存在于java runtime library您正在使用的 java 版本中。对我来说,它在
/home/aniket/jdk1.7.0_11/jre/lib/rt.jar
相应地检查。