如何在 Windows 上安装 OpenJDK 11?
Posted
技术标签:
【中文标题】如何在 Windows 上安装 OpenJDK 11?【英文标题】:How to install OpenJDK 11 on Windows? 【发布时间】:2019-03-01 21:07:56 【问题描述】:过去,Oracle 曾经发布过适用于 Windows 的可执行安装程序:
解压文件 添加指示已安装版本和路径的注册表项 将 JRE 添加到系统 PATH 向 Windows 注册卸载程序。从 Java 11 开始,Oracle 的免费 Java 版本 (Oracle OpenJDK) 似乎不包含安装程序。它只是一个包含二进制文件的 zip 文件。
既然上述集成不再存在,我们应该它们不是必需的吗?
【问题讨论】:
实际上从未需要更改注册表。而且在不操作系统时,也不需要卸载程序。 @Gili 使用 JAVA_HOME 环境变量或通过配置中的直接路径(如 IntelliJ IDEa)吗? 有一个社区项目ojdkbuild 为OpenJDK 提供Windows 安装程序。 JDK 11 尚不可用,但我希望我们能尽快得到它。 @Gili wiki.eclipse.org/FAQ_How_do_I_run_Eclipse%3F#Find_the_JVM 注意注册表没有出现在任何地方...... @Robert 好吧,没有浏览器插件、控制面板、自动更新工具,也没有询问工具栏的垃圾软件,没有那么多要安装的了。 【参考方案1】:将 zip 文件解压到一个文件夹中,例如C:\Program Files\Java\
它将创建一个 jdk-11
文件夹(其中 bin 文件夹是直接子文件夹)。您可能需要管理员权限才能将 zip 文件解压缩到此位置。
设置路径:
选择控制面板,然后选择系统。 点击高级,然后点击环境变量。 将JDK安装的bin文件夹的位置添加到系统变量中的PATH变量中。 以下是 PATH 变量的典型值:C:\WINDOWS\system32;C:\WINDOWS;"C:\Program Files\Java\jdk-11\bin"
设置 JAVA_HOME:
在系统变量下,单击新建。 输入变量名称为 JAVA_HOME。 输入变量值作为JDK的安装路径(不带bin
子文件夹)。
点击确定。
单击应用更改。
在您的 IDE(例如 IntelliJ 或 Eclipse)中配置 JDK。
你准备好了。
要查看它是否有效,请打开命令提示符并输入 java -version
并查看它是否打印了您新安装的 JDK。
如果您要卸载 - 只需撤消上述步骤即可。
注意:您也可以将JAVA_HOME
指向您的JDK 安装文件夹,然后将PATH
变量设置为%JAVA_HOME%\bin
。因此,当您想更改 JDK 时,您只需更改 JAVA_HOME
变量并保持 PATH
不变。
【讨论】:
不要忘记注册表项,例如Launch4j 用于查找已安装的 jre/jdk。 @Lior:这只是我知道的一个使用注册表项的程序。也可能有几十个或几百个其他程序使用这些注册表项。 可能是这样,但是:我从 1.1 版开始使用 Java,没有设置注册表——所以这不是必须的。 b:windows 注册表通常被认为是一种避免机制(例如blog.codinghorror.com/was-the-windows-registry-a-good-idea)——因此,如果没有特别需要,我认为不应该使用它。例如- 在其中设置值的错误可能会导致难以恢复的错误。 > 您可以将 JAVA_HOME 指向您有多个 JDK 安装的文件夹。这是完全错误的。许多程序和脚本假定 JAVA_HOME 指向默认的 java 安装(jdk 或 jre),它们在“%JAVA_HOME%\bin”下搜索二进制文件。因此,您不能将 JAVA_HOME 指向具有 多个 jdk 安装的文件夹。相反,您可以将值“%JAVA_HOME%\bin;”添加到路径中然后(安装新的 JDK 时)您只能更新 JAVA_HOME @sarkasronie 查看 launch4j 源代码:sourceforge.net/p/launch4j/git/ci/Release_launch4j-3_12/tree/…(在 HKEY_LOCAL_MACHINE 下)【参考方案2】:AdoptOpenJDK 是一个由java community 托管的新网站。您可以在那里找到 OpenJDK 8 到 16 的 .msi 安装程序,它将执行问题中列出的所有内容(解包、注册表项、PATH 变量更新(和 JAVA_HOME)、卸载程序...)。
在撰写本文时,AdoptOpenJDK 仍托管最新版本的 OpenJDK,但未来计划在Eclipse Adoptium 提供新版本。
【讨论】:
虽然接受的答案是正确的,但这是安装任何版本的 JDK/JRE 的更方便的方法【参考方案3】:使用Chocolatey packet manager。它是一个类似于 npm 的命令行工具。安装后,使用
choco install openjdk
在提升的命令提示符下安装 OpenJDK。
要将已安装的版本更新到最新版本,请键入
choco upgrade openjdk
使用非常简单,特别有助于升级到最新版本。无需手动修改路径环境变量。
【讨论】:
请注意,这将安装最新版本:openjdk-12.0.2_windows-x64 如果您安装了其他 java 版本,您可能需要检查路径变量并删除/修改旧版本。 @Vadzim choco install openjdk11 截至今天没有提及版本,它安装 openjdk-13 并且请注意,它将像其他答案一样使用 AdoptOpenJDK 作为此方法的说明,jdk11 不再受支持并保持更新。请务必使用“openjdk11”而不是“jdk11”。每个维护者:“对不起。由于 Oracle 要求我们登录 OTN 来安装 JDK 11,我不能再支持巧克力 JDK 11 包。对不起。我要求删除这个 JDK 11 包。请使用开放的 jdk 包。” @GodstimeOsarobo 您可能需要关闭并重新打开您的 shell 窗口(cmd/powershell),因为只有这样 PATH 环境变量才会正确更新。【参考方案4】:来自@ZhekaKozlov 的评论:ojdkbuild 具有适用于 Windows(zip
和 msi
)的 OpenJDK 版本(当前为 8 和 11)。
【讨论】:
对我来说,那些构建没有正确设置 PATH 变量。至少我不能发出java -version
并获得所需的输出。
我找不到 OpenJDK msi。我将编写脚本并在今天晚些时候的答案中分享它,该答案为机器提取和设置 PATH 和 JAVA_HOME。
@vezenkov:请在此处更新答案(这是社区 wiki 的原因)和/或打开项目问题。
如果您是从以前的版本升级到接受的答案,我什至必须重新启动服务器才能看到 openjdk 版本在命令行上得到更新。【参考方案5】:
您可以使用Amazon Corretto。它可以免费使用多平台、生产就绪的 OpenJDK 发行版。它提供长期支持,包括性能增强和安全修复。查看安装说明here。
你也可以从Azul查看Zulu。
我想在这里强调的另一件事是 Amazon Corretto 和 Zulu 都符合 TCK 标准。您可以看到 OpenJDK 构建比较 here 和 here。
【讨论】:
【参考方案6】:对于 Java 12 及更高版本,Oracle 的 OpenJDK(GPL2 + 类路径异常)的官方通用可用性 (GA) 和早期访问 (EA) Windows 64 位版本可从@987654321 以 tar.gz/zip 的形式提供@。
如果您更喜欢安装程序,有多个发行版。 Java Champions 社区有一个public Google Doc 和Blog post,其中列出了最受支持的 OpenJDK 发行版。目前,这些是:
AdoptOpenJDK 已被 Adoptium/Temurin 取代 Adoptium Temurin Amazon Corretto IBM Semeru(使用 OpenJ9 JVM) 利比里卡来自Bellsoft Microsoft Build of OpenJDK OpenLogic OpenJDK Red Hat OpenJDK SAPMachine(由 SAP 提供支持) Zulu Community(由 Azul Systems 提供支持)【讨论】:
【参考方案7】:https://www.openlogic.com/openjdk-downloads 允许我选择 32 位版本的 OpenJDK8(不要问 - Arduino IDE 无法使用 11 编译),我认为它们只是围绕 AdoptOpenJDK MSI 进行封装,但我找不到 32 位版本AdoptOpenJDK 上的发行版。
【讨论】:
以上是关于如何在 Windows 上安装 OpenJDK 11?的主要内容,如果未能解决你的问题,请参考以下文章
windows上安装Mercurial4.4.1 克隆OPENJDK版本库
如何在Windows上获取OpenJDK 11的tools.jar?
需求windows32位openjdk1安装包,1.7和1.8都行
如何在 Ubuntu 18.04 上安装最新的 openjdk 12