如何在 MACOS 上将 Java 从 9 降级到 8。 Eclipse 未与 Java 9 一起运行

Posted

技术标签:

【中文标题】如何在 MACOS 上将 Java 从 9 降级到 8。 Eclipse 未与 Java 9 一起运行【英文标题】:How to downgrade Java from 9 to 8 on a MACOS. Eclipse is not running with Java 9 【发布时间】:2018-03-12 19:46:07 【问题描述】:

如何在 macOS Sierra 10.12.6(16G29) 上将 Java 从 9 降级到 8。我尝试删除 Java 插件并安装 Java 8,但是 Java 和 javac 版本在终端中显示为 9,但在系统首选项中为 8。

【问题讨论】:

MacOS的版本可能相关;考虑编辑并将其添加到问题中(不作为评论发布)。 你看过wiki.eclipse.org/Configure_Eclipse_for_Java_9吗? 【参考方案1】:

您无需降级。您可以在 MacOS 上运行多个版本的 Java。您可以在 MacOS 中使用此命令设置终端的版本。

# List Java versions installed
/usr/libexec/java_home -V

# Java 11
export JAVA_HOME=$(/usr/libexec/java_home -v 11)

# Java 1.8
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

# Java 1.7
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)

# Java 1.6
export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

您可以在 .bashrc、.profile 或 .zprofile 中设置默认值

【讨论】:

非常感谢,这对我有帮助!遗憾的是,MacOS 中的 Java 控制面板没有公开这样的设置。 你能详细说明你的答案吗? /usr/libexec/java_home -v 11 是什么意思? export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0_211) 并不能解决我的问题。也已经重新启动了我的终端。 我不断收到“JAVA_HOME:分配的类型不一致”。并且java版本没有改变。任何线索如何解决这个问题?【参考方案2】:

我就是这样做的。您无需删除 Java 9 或更高版本。

第 1 步:安装 Java 8

您可以从这里下载 Java 8:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

第 2 步:安装 Java 8 后。确认安装所有版本。在终端中键入以下命令。

/usr/libexec/java_home -V

第 3 步:编辑 .bash_profile

sudo nano ~/.bash_profile

第 4 步:默认添加 1.8。 (将下面的行添加到 bash_profile 文件中)。

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

现在按 CTRL+X 退出 bash。按“Y”保存更改。

第 5 步:重新加载 bash_profile

source ~/.bash_profile

第 6 步:确认当前的 Java 版本

java -version

【讨论】:

是否可以以同样的方式更改 javaws 版本?因为 java -version 报告它发生了变化,但 javaws 仍然运行最新可用的。【参考方案3】:

如果您的 Mac 上安装了多个 Java 版本,这里有一种使用终端切换默认版本的快速方法。在此示例中,我将把 Java 10 切换到 Java 8。

$ java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    10.0.1, x86_64: "Java SE 10.0.1"    /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home
    1.8.0_171, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home

然后,在您的 .bash_profile 中添加以下内容。

# Java 8
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

现在如果你再次尝试 java -version,你应该会看到你想要的版本。

$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

【讨论】:

【参考方案4】:

由于它允许安装多个版本的java,我在不知不觉中安装了许多3个版本,但它指向最新版本“11.0.2”

我可以通过以下步骤来解决此问题以移至“1.8”

$java -version

openjdk 版本“11.0.2” 2019-01-15 OpenJDK 运行时环境 18.9(内部版本 11.0.2+9) OpenJDK 64-Bit Server VM 18.9(build 11.0.2+9,混合模式)

cd /Library/Java/JavaVirtualMachines
ls

jdk1.8.0_201.jdk jdk1.8.0_202.jdk openjdk-11.0.2.jdk

sudo rm -rf openjdk-11.0.2.jdk
sudo rm -rf jdk1.8.0_201.jdk
ls

jdk1.8.0_202.jdk

java -version

java 版本“1.8.0_202-ea” Java(TM) SE 运行时环境 (build 1.8.0_202-ea-b03) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.202-b03,混合模式)

【讨论】:

我会避免删除系统上的文件。相反,只需重定向 $JAVA_HOME 环境变量。【参考方案5】:

老问题,但只是遇到了这个问题/dumb jira 遇到了 java 10/ 的问题,在这里没有找到简单的答案,所以就离开它吧:

$ /usr/libexec/java_home -V 显示安装的版本及其位置,因此您可以简单地删除 /Library/Java/JavaVirtualMachines/<the_version_you_want_to_remove>。瞧

【讨论】:

【参考方案6】:

最简单的解决方案可能是将 Java 8 与 Java 9 并行安装(如果仍然不存在的话),并在 eclipse.ini 中明确指定要使用的 JVM。您可以在 Eclipsepedia 找到此设置的说明,包括如何在 Mac 上找到 eclipse.ini 的说明

【讨论】:

【参考方案7】:

如offical Oracle Documentation 中所述,如果您不想删除 Java 安装,则需要删除两个相关路径。

路径 1 是 JRE - 安装路径:/Library/Internet Plug-Ins/ 路径2为JDK——安装路径:/Library/Java/JavaVirtualMachines

JRE 步骤: 通过终端将目录更改为路径 1。

cd /Library/Internet Plug-Ins/

删除 JavaAppletPlugin.plugin

sudo rm -rf JavaAppletPlugin.plugin

JDK 步骤: 执行 JRE 步骤下的步骤 通过终端将目录更改为路径 2。

/Library/Java/JavaVirtualMachines
查看此文件夹中的所有安装
ls

删除此文件夹中的所有安装。

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-(...).jdk

卸载后,您就可以进行全新安装了。只需 download 你是选择的版本并安装它。

【讨论】:

【参考方案8】:
# List Java versions installed
/usr/libexec/java_home -V

# Java 11
export JAVA_HOME=$(/usr/libexec/java_home -v 11)

# Java 1.8
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

# Java 1.7
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)

# Java 1.6
export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

【讨论】:

【参考方案9】:

您可以删除 Spotlight 或 Finder 中的“JavaAppletPlugin.plugin”,然后重新安装下载的 Java 8。

这将简单地解决您的问题。

【讨论】:

以上是关于如何在 MACOS 上将 Java 从 9 降级到 8。 Eclipse 未与 Java 9 一起运行的主要内容,如果未能解决你的问题,请参考以下文章

如何从MacOS Catalina降级到 MacOS High Sierra,几步轻松搞定

在VMware上将iPhone从host转移到虚拟机(macOS)里,虚拟机过几秒后会卡死,怎么办?

如何将 laravel 版本从 8.x 降级到 7.x?

如何在 macOS 上将 Git 升级到最新版本?

ipadmini2降级10.3.3是啥版本

MacOS系统降级