如何在Windows上安装OpenJDK 11?

Gil*_*ili 206 windows java-11

在过去,Oracle曾经发布过Windows的可执行安装程序,它将:

  • 解压缩文件
  • 添加指示已安装版本和路径的注册表项
  • 将JRE添加到系统PATH
  • 使用Windows注册卸载程序.

从Java 11开始,Oracle的免费Java版本(Oracle OpenJDK)似乎不包含安装程序.它只是一个包含二进制文件的zip文件.

我们如何在Windows上安装OpenJDK 11,因为上述集成不再存在?他们不是必要的吗?

Lio*_*-On 232

  1. 将zip文件解压缩到一个文件夹中,例如C:\Program Files\Java\,它将创建一个jdk-11文件夹(bin文件夹是直接子文件夹).您可能需要管理员权限才能将zip文件解压缩到此位置.

  2. 设置路径:

    • 选择控制面板,然后选择系统.
    • 单击"高级",然后单击"环境变量".
    • 将JDK安装的bin文件夹的位置添加到System Variables中的PATH变量.
    • 以下是PATH变量的典型值: C:\WINDOWS\system32;C:\WINDOWS;"C:\Program Files\Java\jdk-11\bin"
  3. 设置JAVA_HOME:

    • 在"系统变量"下,单击"新建".
    • 输入变量名称JAVA_HOME.
    • 输入变量值作为JDK的安装路径(不包含bin子文件夹).
    • 单击确定.
    • 单击应用更改.
  4. 在IDE中配置JDK(例如IntelliJ或Eclipse).

你被设定了.

要查看它是否有效,请打开命令提示符并键入java -version并查看它是否打印新安装的JDK.

如果要卸载 - 只需撤消上述步骤即可.

注意:您可以将JAVA_HOME指向您有多个JDK安装的文件夹,然后将PATH变量设置为某个JDK.因此,当您想要更改JDK时,只更改PATH变量并保持JAVA_HOME不变.

  • >*您可以将JAVA_HOME指向您有多个JDK安装*的文件夹.这是完全错误的.许多程序和脚本假设JAVA_HOME指向默认的java安装(jdk或jre),并且它们在"%JAVA_HOME%\ bin"下搜索二进制文件.因此,您无法将JAVA_HOME指向具有*multiple*jdk安装的文件夹.相反,您可以向Path添加值"%JAVA_HOME%\ bin;" 然后(安装新的JDK时)您只能更新JAVA_HOME (18认同)
  • 不要忘记注册表项,例如Launch4j用于查找已安装的jre/jdk. (8认同)
  • @Lior:这只是我所知道的一个使用注册表项的程序.使用这些注册表项的可能还有数十或数百个其他程序. (2认同)
  • 可能是这样,但是:a.我从1.1版开始使用Java而没有设置注册表 - 因此它不是必须的.b:windows注册表通常被认为是一种避免的机制(例如https://blog.codinghorror.com/was-the-windows-registry-a-good-idea/) - 因此我不认为它应该是如果不是特别需要,请使用.例如 - 在其中设置值的错误可能导致难以恢复的错误. (2认同)
  • @sarkasronie请参阅launch4j源代码:https://sourceforge.net/p/launch4j/git/ci/Release_launch4j-3_12/tree/head_src/head.c#l630(在HKEY_LOCAL_MACHINE下) (2认同)
  • 正如@craftwar 在下面被否决的答案中提到的那样,按照上述答案的说明运行 java --version 时,可能会遇到以下错误:错误:打开注册表项“Software\JavaSoft\Java Runtime Environment”错误:找不到 java .dll 错误:找不到 Java SE 运行时环境。这是因为 Oracle JDK 卸载程序没有删除“C:\ProgramData\Oracle”中的文件,一旦我删除了“Oracle”目录,一切都开始按预期工作。 (2认同)
  • 请补充一点,您必须将 Java11 PATH 条目移动到 PATH 的开头。这将某些(多个!)路径设置覆盖为“...\Oracle\Java\javapath”。如果不这样做,测试可能会失败。 (2认同)

Pim*_*mgd 67

AdoptOpenJDKJava社区托管的一个新网站。您可以在此处找到适用于OpenJDK 8至12的.msi安装程序,它将执行问题中列出的所有内容(解包,注册表项,PATH变量更新(和JAVA_HOME),卸载程序...)。

  • 尽管接受的答案是正确的,但这是安装任何版本的 JDK/JRE 的更方便的方法 (28认同)

Rei*_*der 17

根据@ZhekaKozlov的评论:ojdkbuild具有适用于Windows(zipmsi)的OpenJDK构建(当前为8和11 )。

  • 对我来说,那些构建没有正确设置PATH变量。至少我不能发出`java -version`来获得想要的输出。 (3认同)

Tob*_*ias 13

使用Chocolatey数据包管理器。这是一个类似于npm的命令行工具。安装后,请使用

choco install openjdk
Run Code Online (Sandbox Code Playgroud)

在提升权限的命令提示符下安装OpenJDK。

要将安装的版本更新为最新版本,请键入

choco upgrade openjdk
Run Code Online (Sandbox Code Playgroud)

相当简单易用,对升级到最新版本特别有帮助。无需手动摆弄路径环境变量。

  • 请注意,这将安装最新版本:openjdk-12.0.2_windows-x64 (3认同)
  • @Vadzim choco 从今天开始安装 openjdk11 ,没有提及版本,它安装了 openjdk-13 ,只是要注意,它将使用 AdoptOpenJDK ,如其他答案中所示 (2认同)

Swa*_*nil 5

JDK 构建

\n

基本上,JDK只有一套源代码。它托管在OpenJDK的 Mercurial 中。\n任何人都可以获取源代码、生成构建并发布它。因此,Oracle 创建了一个认证流程,用于确保构建有效。该认证由 Java Community Process 运行,该进程提供技术兼容性工具包(TCK 或 JCK as Java)。如果组织生成通过 TCK 的 OpenJDK 版本,则该版本可以描述为 \xe2\x80\x9cJava SE 兼容\xe2\x80\x9d。

\n

Eclipse Temurin
\n AdoptOpenJDK已移至Eclipse Foundation并更名为Eclipse Adoptium项目。Adoptium OpenJDK 构建称为Eclipse Temurin,以区分项目和构建。Eclipse Temurin 构建是高质量、供应商中立的,并且在宽松的许可证下经过 TCK 测试。Temurin 可用于多种平台和 Java SE 版本。

\n

祖鲁语\n您可以从Azul
查看祖鲁语。Azul 为许多操作系统和架构提供名为 Azul Zulu 的开源 OpenJDK 版本。Azul Platform Core 提供 100% 开源、经过全面测试和认证、符合 Java SE 标准、精心策划的 OpenJDK 构建。Zulu 符合 Java SE 规范,并且具有与 Oracle 产品相同的性能水平,使其成为 Oracle HotSpot 的简单 \xe2\x80\x9cdrop-in\xe2\x80\x9d 替代品。

\n

Amazon Corretto
\n您还可以使用Amazon Corretto。可免费使用 OpenJDK 的多平台、生产就绪发行版。它提供长期支持,包括性能增强和安全修复。在此处查看安装说明

\n

符合 TCK 标准
\n我想在此强调的另一件事是,所有提及的版本均符合 TCK 标准。您可以在此处此处查看 OpenJDK 构建比较

\n

检查这个指南来决定哪个 jdk 最适合您的需求。

\n