我需要单独安装JDK(Java开发工具包)来使用Android Studio吗?

55

我正在从这个YouTube 播放列表 学习Android开发,它提到我需要单独安装一个JDK(Java开发工具包)来使用Android Studio。但是当我学习教程时,我能够在不需要单独安装JDK的情况下运行应用程序。

这是否意味着在旧版本的Android Studio中需要单独安装JDK(Java开发工具包),而在新版本中不需要?

7个回答

86
这是Google在 https://developer.android.com/studio/intro/studio-config.html 上的说法:

最新版本的Android Studio 2.2和更高版本自带OpenJDK的一个副本,我们推荐您在Android项目中使用此JDK版本。

因此,如果您使用的是最新版本,则不需要任何额外的JDK。此外,与2016年6月的安装说明相比,官方安装说明中不再包含任何有关JDK的提示。

谢谢!我一直在寻找来自Google或专家的官方声明,确认我们是否需要安装Java SDK。 - NaturalBornCamper
3
如何在使用OpenJDK时获取keytool?它说:“要使用keytool命令行工具,您需要安装JDK”。 - onexf
2
@onexf 要使用keytool,只需将其目录添加到PATH中。例如,在Windows上,如果Android Studio安装在C:\ Android目录中:>set PATH=%PATH%;"C:\Android\Android Studio\jre\bin" - Yuri
@Yuri Mac也一样吗? - onexf
@onexf 这个想法应该是相同的,只是要使用适当的Unix命令。例如:$ export PATH=$PATH:/path/to/androidstudio/jre/bin - Yuri
显示剩余2条评论

62

Android Studio 2.2及以上版本集成了最新的OpenJDK,以降低初学者的门槛。

然而,建议您自行安装JDK,这样您就可以独立于Android Studio更新它。


如果你正在使用 Android API <24,则需要使用Java 7编译项目或执行一些额外步骤启用Java 8功能。(注意:Java 8支持相对较新。)
Android Studio 3.0及更高版本支持所有Java 7语言特性和Java 8语言特性的子集。

24
在Mac上,可以使用以下导出命令设置Android Studio的Java环境路径:

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/

这将使用Android Studio附带的JAVA(OpenJDK)。

3
使用Arctic Fox 2020.3.1 Patch 3,我得到了以下内容:export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home。 - Andy Weinstein

10

以前需要安装JDK才能使用Android Studio,因此有一些视频讲解如何安装。但是,最近的版本已经内置了JDK。请注意,Android Studio正在快速发展,教程很快就会过时。

请注意,安装Android Studio并不会自动配置内置的JDK命令行工具。如果您想使用Android SDK命令行工具,这一点很重要。为了解决这个问题,请找到Android Studio安装目录下包含java命令(实际运行Java虚拟机的本地命令)的bin目录,并将其添加到您的路径中。由于这可能会发生变化,我不会在此答案中添加特定目录。在Windows上,该文件名为java.exe;在其他所有平台上,它称为java,并具有可执行权限。

(您还需要添加包含SDK工具本身的目录。)

实际上有两个这样的目录,因为像所有Java应用程序一样,JDK包含一个Java运行时环境(JRE)。如果您只想运行SDK工具,则无论选择哪个bin目录都没有关系。但是,如果您想在Android Studio之外编译和运行Java代码,则需要使用包含javac命令和其他必要的JDK开发工具的bin目录。

或者,您也可以只安装最新的JDK。没有任何理由不这样做。


4
显然不是。我按照安装Flutter的步骤进行了操作,包括安装Android Studio。
然而,`flutter doctor`出现了一个问题:
✗ cmdline-tools component is missing
  Run `path/to/sdkmanager --install "cmdline-tools;latest"`
  See https://developer.android.com/studio/command-line for more details.

最终我找到了 path/to/sdkmanager 的路径,它位于

/Users/<Mac User Name>/Library/Android/sdk/tools/bin/sdkmanager

但运行时

/Users/<Mac User Name>/Library/Android/sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"

产生了错误:

The operation couldn’t be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

根据像这个页面这样的帖子,我不情愿地开始考虑安装Java。 但是,我发现Java已经包含在Android Studio中,所以我运行了以下命令:

 export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home

但是接着

/Users/<Mac User Name>/Library/Android/sdk/tools/bin/sdkmanager --install "cmdline-tools;latest"

产生了一个异常:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)

然而,如此处所示,解决方案是使用Android Studio安装Android sdk Command-line Tools(最新版本)。

一旦我完成了这个步骤,就不再需要运行--install "cmdline-tools;latest",因为cmdline-tools;latest已经被Android Studio安装了。

之后,我就能够运行flutter doctor并按照说明操作,使得flutter doctor不再识别任何问题。

值得注意的是,Android Studio直到我实际创建一个项目才下载其他sdk组件。

我能够下载一个Android模拟器,并在模拟器上运行该项目,而无需安装Java,除了Android Studio自带的。


谢谢,我也是从同样的用例(第一次设置Flutter)开始的。如果没有看到你的答案,我可能要花很长时间才能找到SDK管理器。 - hikarikuen

1

我刚在studio.sh文件中添加了JAVA_HOME=/path/to/jdk和STUDIO_JDK=/path/to/jdk,现在一切正常。


0

我想在OpenJDK13上测试Android Studio,而不是使用嵌入式jre11。我不想在控制面板中创建全局环境变量STUDIO_JDK | JAVA_HOME。我编写了一个小的studio-start.bat脚本,以在自定义Java JDK版本上运行Android Studio IDE。

Android Studio Bumblebee | 2021.1.1 Build #AI-211.7628.21.2111.8092744,建于2022年1月19日具有此嵌入式Java虚拟机。

c:\android-studio\jre\bin\java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
OpenJDK 64-Bit Server VM (build 11.0.11+9-b60-7590822, mixed mode)

我想尝试在这个Java上运行IDE。

C:\java\jdk-13.0.2\bin\java --version
openjdk 13.0.2 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

创建 C:\android-studio\studio-start.bat 脚本。
@REM Use custom JDK for AndroidStudio IDE
@set basedir=%~dp0
set STUDIO_JDK=C:\java\jdk-13.0.2
call "%basedir%bin\studio.bat

@rem the following commands did not use a custom JDK envvar.
@rem start "AndroidStudio" /I "%basedir%studio64.exe"
@rem "%basedir%studio64.exe"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接