如何在MacOS上安装额外的java ?我安装了jdk8,运行正常。但是现在出于开发目的,我需要安装jdk7。当试图通过DMG文件安装旧版本时,我得到一个警告,已经安装了新的java版本,安装程序退出。

    /usr/libexec/java_home -verbose
    Matching Java Virtual Machines (1):
        1.8.0_20, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

       /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

除了这个,如何安装jdk7 ?


当前回答

这是一个很棒的教程 https://medium.com/@chamikakasun/how-to-manage-multiple-java-version-in-macos-e5421345f6d0 通过使用jEnv安装由brew

或者您可以查看homebrew-openjdk https://github.com/AdoptOpenJDK/homebrew-openjdk使用brew Tap管理版本

其他回答

我使用的是Mac OS X 10.9.5。这就是当我需要一个版本运行应用程序A,而应用程序B使用另一个版本时,我如何在我的机器上管理多个JDK/JRE。

我在网上得到一些帮助后创建了以下脚本。

#!bin/sh
function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/Library/Java/JavaVirtualMachines/'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=/Library/Java/JavaVirtualMachines/$1/Contents/Home
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }
 function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
 }
#setjdk jdk1.8.0_60.jdk
setjdk jdk1.7.0_15.jdk

I put the above script in .profile file. Just open terminal, type vi .profile, append the script with the above snippet and save it. Once your out type source .profile, this will run your profile script without you having to restart the terminal. Now type java -version it should show 1.7 as your current version. If you intend to change it to 1.8 then comment the line setjdk jdk1.7.0_15.jdk and uncomment the line setjdk jdk1.8.0_60.jdk. Save the script and run it again with source command. I use this mechanism to manage multiple versions of JDK/JRE when I have to compile 2 different Maven projects which need different java versions.

我最近回复,我真的建议你用SDKMAN代替Homebrew。

使用SDKMAN,您可以轻松地在mac上安装不同版本的JAVA,并从一个版本切换到另一个版本。

你也可以使用SDKMAN的ANT, GRADLE, KOTLIN, MAVEN, SCALA等…

要在mac上安装新版本,可以运行命令sdk install java 15.0.0.j9-adpt

我按照下面的步骤链接- https://medium.com/@euedofia/fix-default- java-versionon -maven-on-mac-os-x-156cf5930078,它对我有效。

cd /usr/local/Cellar/maven/3.5.4/bin/
nano mvn
--Update JAVA_HOME -> "${JAVA_HOME:-$(/usr/libexec/java_home)}"
mvn -version

使用jenv管理MAC中的多个java版本

Install homebrew using following command /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" install jenv and activate jenv brew install jenv echo 'eval "$(jenv init -)"' >> ~/.bash_profile tap cask-versions brew tap homebrew/cask-versions search available java version that can be installed brew search java E.g. to install java6 use following command brew install cask java6 Add multiple versions of java in jenv jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home jenv add /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

注意:-如果你得到类似ln: /Users/<username>/.jenv/versions/oracle64-1.8.0.231: No such file or directory的错误,那么执行以下命令:-

   mkdir -p /Users/<username>/.jenv/versions/oracle64-1.8.0.231

在添加jdk 's后重新哈希jenv jenv重复 列出已知的java版本到jenv jenv版本 设置默认版本 Jenv global oracle64-1.8.0.231 更改项目的java版本 Jenv local oracle64-1.6.0.65 将JAVA_HOME设置为与jenv相同的版本 Jenv执行bash echo $ JAVA_HOME

到2023年,我在苹果芯片上无法使用brew install -cask zulu8。Brew install openjdk@8也没有。对我来说唯一有效的解决方案是brew install—cask adoptopenjdk8,然后当然是vim ~/。ZSHRC和内部:

export JAVAC_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
alias javac8='export JAVA_HOME=$JAVAC_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java8='export JAVA_HOME=$JAVA_8_HOME'

从使用javac8的终端切换到新安装的(不同的)版本。注意:您可以使用与我不同的Java版本,因此这只是一个示例。

编辑:由于某种原因,它需要一些时间,一旦它被激活。在我看来,重启笔记本电脑是必要的。