0

当我需要获取方法签名时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 是如何命名的?

4

4 回答 4

2

它存在于rt.jar. 您可以使用JarFinder来查找 jar 和类。

它存在于libjdk安装目录的文件夹中。

于 2013-10-12T12:08:24.297 回答
2

这是rt.jar来自你的 JRE 或 JDK,即libJRE 里面。鉴于您使用的是 Windows,我将前往:

C:\program files\java\jdk1.7.0_25\jre\lib

对于 JDK(将位置更改为您的 JDK)。

android.jar 有那个文件,但前者应该足以满足非 android 实现。

于 2013-10-12T12:08:31.047 回答
2

从 Android SDK 16 开始(我还没有在 Android 18 中测试过)android.jar也有这个java.io.File类。

尝试将其作为 ZIP 文件打开并查看其中包含哪些文件。

ContentWrapperandroid/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
于 2013-10-12T12:10:49.813 回答
1

它存在于java runtime library您正在使用的 java 版本中。对我来说,它在

/home/aniket/jdk1.7.0_11/jre/lib/rt.jar

相应地检查。

于 2013-10-12T12:10:08.420 回答