如何使Android Studio嵌入式JDK使用本地文档路径

时间:2017-01-25 08:17:17

标签: java android-studio javadoc

我使用Android studio 2.2,并使用嵌入式JDK作为我的项目的JDK,这是设置显示的推荐方式。

我的项目在主机上运行了一个java模块。当我处理这个java模块时,弹出菜单显示Fetching documentation...,并且每次我想查找一些Java API的文档时都需要花一点时间来显示文档。

我的主机/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

上安装了另一个版本的JDK

所以我尝试从

更改文件~/Library/Preferences/AndroidStudio2.2/options/jdk.table.xml的几行
<javadocPath>
    <root type="composite">
        <root type="simple" url="http://docs.oracle.com/javase/8/docs/api" />
    </root>
</javadocPath>

<javadocPath>
      <root type="composite">
          <root type="simple" url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/src.zip!/" />
          <root type="simple" url="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/javafx-src.zip!/" />
      </root>                          
</javadocPath>

但是在我重新启动Android studio之后,我的更改没有生效。当我查看文档时,它会非常缓慢,并且jdk.table.xml的内容已经恢复,javadocPath网址路径仍然指向http://docs.oracle.com/javase/8/docs/api

如何在嵌入式JDK的Android studio中使用本地JDK文档?

1 个答案:

答案 0 :(得分:1)

将src.jar链接(或复制)到jre dir

我在这里遇到了类似的问题。您的尝试激发了我尝试其他方法:将本地JDK安装中的src.zip文件链接到Android Studio的jre目录。我们假设您的Android Studio位于$ANDROID_STUDIO_HOME_DIR

# assuming you're on something *nix-y
$ ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/src.zip $ANDROID_STUDIO_HOME_DIR/jre/src.zip

重启后似乎有效[*]。适当的看似值会自动添加到jdk.table.xml文件中,并且所有内容都会在进一步重新启动后幸存下来。当然,将文件复制到位可能会有相同的效果,但我想我会发现软链接对这个黑客有用的提醒......

[*]:我想如果你使用JavaFX,你也需要为javafx-src.zip做同样的事情。

Android Studio更新中的Hiccup

稍后:此次更改在下次Android Studio更新后无法生效。更新过程(2.2到2.3)引发了一个关于我所添加的src.jar文件的补丁冲突的对话框。在解除该对话框后,更新运行完成。然后工作室似乎工作正常,除了再一次我的java模块的快速文档丢失。我重新添加了src.jar的链接,让它再次运行。

改为使用API​​文档

为了完整起见,我还发现了一种使用API​​文档副本而不是本地JDK src.zip的方法。如果API文档已链接/复制到$ANDROID_STUDIO_HOME_DIR/jre/docs/api,则会将其选中。

所以,要使用上面提到的Documentation for Android SDK

$ mkdir $ANDROID_STUDIO_HOME_DIR/jre/docs
$ ln -s ~/android-sdks/docs/reference $ANDROID_STUDIO_HOME_DIR/jre/docs/api

或者,如果您在jdk-xxx-docs-all.zip解压缩了Oracle $JDK_DOCS的副本:

$ mkdir $ANDROID_STUDIO_HOME_DIR/jre/docs
$ ln -s $JDK_DOCS/api $ANDROID_STUDIO_HOME_DIR/jre/docs/api