即使JRE 8安装在我的MAC上 - "无Java运行时存在,请求安装"也会显示在终端中

Gin*_*ina 44 java xamarin

即使JRE 8安装在我的MAC OS Yosemite 10.10.3上,同时在sdk中的工具中运行Android - 错误 - "没有Java运行时存在,请求安装"在终端中显示 - 我如何解决这个问题?

  1. 我想安装Xamarin测试记录器 - 安装后他们让我安装Android sdk

  2. SDK在Library/Developer/Xamarin/android-sdk中下载

  3. 现在,当我在工具文件夹中运行Android时 - 我收到错误 - 没有Java运行时

  4. 我已经安装了JRE 8,并从他们的网站获得了经过验证的java版本

有人可以帮忙!!

iNy*_*yar 134

2021年解决方案

长话短说

brew install temurin
Run Code Online (Sandbox Code Playgroud)

细节

在 M1 Mac/Apple Silicon(运行 Big Sur)上,我已经openjdk安装了。正如 Mohammed 在之前的回答中所指出的,openjdk是 keg-only 的brew,因此需要添加一个符号链接

遵循此操作后,它解决了No Java Runtime present错误,但rJava抱怨缺少libjvm.dylib并且现有库适用于错误的架构:

.onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(jvm, FALSE)
  error: unable to load shared object '/opt/homebrew/Cellar/openjdk/16.0.2/libexec/openjdk.jdk/Contents/Home/lib/server/libjvm.dylib':
  dlopen(/opt/homebrew/Cellar/openjdk/16.0.2/libexec/openjdk.jdk/Contents/Home/lib/server/libjvm.dylib, 10): 
    no suitable image found.  Did find:
    /opt/homebrew/Cellar/openjdk/16.0.2/libexec/openjdk.jdk/Contents/Home/lib/server/libjvm.dylib: 
    mach-o, but wrong architecture
Run Code Online (Sandbox Code Playgroud)

安装Eclipse Temurin(以前的版本AdoptOpenJDK)(并删除之前在 中创建的符号链接/Library/Java/JavaVirtualMachines/openjdk.jdk)立即无缝地解决了这两个问题。

只要运行brew install temurin,一切都应该没问题。

  • @EugeneTroyanskii:https://brew.sh/ → 安装 Homebrew(macOS 上的包管理器) (3认同)

Sau*_*abh 77

我只需要在 Mac 上执行以下操作:

brew install openjdk
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
export JAVA_HOME="/Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home"
java --version
Run Code Online (Sandbox Code Playgroud)

  • 第二行更好: `sudo ln -sfn $(brew --prefix)/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk` (4认同)
  • 您可以 `export JAVA_HOME="/usr/local/opt/openjdk/libexec/openjdk.jdk/Contents/Home"`。不需要符号链接。 (2认同)
  • @nakamume Symlink 由 Homebrew 推荐 (2认同)

MrD*_*DEV 65

您必须安装完整的JDK,而不仅仅是JRE.

我有同样的问题,并通过安装JDK解决.

请使用此链接下载最新的JDK版本11.0.2.

  • 该解决方案不适用于蒙特雷 (12.4)。安装JDK后$JAVA_HOME也是空的 (8认同)
  • 这并不能解决 macOS 10.15.7 上最新 JDK 的问题。 (2认同)

Ole*_*kov 42

我不需要完整的JDK,我只需要让JRE工作,上面提供的其他答案都不适用于我.也许它曾经工作,但现在(2018年7月1日)它不起作用.我只是不断收到错误和弹出窗口.

我最终通过将以下JAVA_HOME导出放在〜/ .bash_profile中解决了这个问题:

export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人.我正在运行Mac OS High Sierra.

  • 升级到 Catalina 10.15.1 后似乎对我有用 (2认同)

Moh*_*med 24

After installing openjdk with brew and runnning brew info openjdk I got this

在此处输入图片说明

And from that I got this command here, and after running it I got Java working

sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

  • 是的!砰的一声。我想这就像“RTFI”一样简单 (8认同)
  • 这对我来说是这个问题的最佳解决方案。 (2认同)
  • 谢谢!在 macOS Monterey 上运行 - 12.4 1-brew install openjdk@11 2-echo 'export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc 3- sudo ln -sfn /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk (2认同)

Raj*_*sit 18

通过以下命令工作

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"
Run Code Online (Sandbox Code Playgroud)

  • 对于较新版本的 Android Studio:export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home/ (2认同)

ate*_*kov 16

如果您在尝试生成 jks 文件 (keystore)时遇到错误,请尝试添加

/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool
Run Code Online (Sandbox Code Playgroud)

在运行命令之前,像这样:

/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
Run Code Online (Sandbox Code Playgroud)


Moh*_*afa 14

也许有人仍然遇到同样的问题。您可以使用 homebrew 安装 openjdk,然后将新的 JDKbin目录添加到路径的前面:

cd ~

brew install openjdk

echo 'export PATH="/usr/local/opt/openjdk/bin:$PATH"' >> .bash_profile

source .bash_profile
Run Code Online (Sandbox Code Playgroud)


khi*_*zer 14

先决条件:

\n
    \n
  • 我已经使用brew在我的机器上安装了java11。
  • \n
\n

步骤1:brew info java11

\n

输出:

\n

/opt/homebrew/Cellar/openjdk@11

\n
USER1-MacBook-Pro JavaVirtualMachines % brew info java11\nopenjdk@11: stable 11.0.12 (bottled) [keg-only]\nDevelopment kit for the Java programming language\nhttps://openjdk.java.net/\n/opt/homebrew/Cellar/openjdk@11/11.0.12 (670 files, 273.0MB)\n  Poured from bottle on 2021-10-09 at 13:07:04\nFrom: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/openjdk@11.rb\nLicense: GPL-2.0-only\n==> Dependencies\nBuild: autoconf \xe2\x9c\x94\n==> Requirements\nBuild: Xcode \xe2\x9c\x98\n==> Caveats\nFor the system Java wrappers to find this JDK, symlink it with\n  sudo ln -sfn /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk\n\nopenjdk@11 is keg-only, which means it was not symlinked into /opt/homebrew,\nbecause this is an alternate version of another formula.\n\nIf you need to have openjdk@11 first in your PATH, run:\n  echo \'export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"\' >> ~/.zshrc\n\nFor compilers to find openjdk@11 you may need to set:\n  export CPPFLAGS="-I/opt/homebrew/opt/openjdk@11/include"\n\n==> Analytics\ninstall: 44,188 (30 days), 149,578 (90 days), 433,845 (365 days)\ninstall-on-request: 19,074 (30 days), 63,262 (90 days), 187,286 (365 days)\nbuild-error: 0 (30 days)\n
Run Code Online (Sandbox Code Playgroud)\n

步骤 2:将 openJDK 路径追加到现有路径。

\n

echo \'export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"\' >> ~/.zshrc

\n

步骤 3:获取现有 shell 或打开新终端来验证更改

\n
    \n
  • source ~/.zshrc
  • \n
\n

步骤 4:检查路径是否已添加

\n
    \n
  • which java
  • \n
\n

输出:/opt/homebrew/opt/openjdk@11/bin/java

\n

步骤5:

\n
    \n
  • java --version
  • \n
\n
USER1-MacBook-Pro JavaVirtualMachines % brew info java11\nopenjdk@11: stable 11.0.12 (bottled) [keg-only]\nDevelopment kit for the Java programming language\nhttps://openjdk.java.net/\n/opt/homebrew/Cellar/openjdk@11/11.0.12 (670 files, 273.0MB)\n  Poured from bottle on 2021-10-09 at 13:07:04\nFrom: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/openjdk@11.rb\nLicense: GPL-2.0-only\n==> Dependencies\nBuild: autoconf \xe2\x9c\x94\n==> Requirements\nBuild: Xcode \xe2\x9c\x98\n==> Caveats\nFor the system Java wrappers to find this JDK, symlink it with\n  sudo ln -sfn /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk\n\nopenjdk@11 is keg-only, which means it was not symlinked into /opt/homebrew,\nbecause this is an alternate version of another formula.\n\nIf you need to have openjdk@11 first in your PATH, run:\n  echo \'export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"\' >> ~/.zshrc\n\nFor compilers to find openjdk@11 you may need to set:\n  export CPPFLAGS="-I/opt/homebrew/opt/openjdk@11/include"\n\n==> Analytics\ninstall: 44,188 (30 days), 149,578 (90 days), 433,845 (365 days)\ninstall-on-request: 19,074 (30 days), 63,262 (90 days), 187,286 (365 days)\nbuild-error: 0 (30 days)\n
Run Code Online (Sandbox Code Playgroud)\n


Hug*_*nte 8

oracle-sdk我通过安装解决了这个问题brew

brew install oracle-jdk --cask
Run Code Online (Sandbox Code Playgroud)


aba*_*los 6

由于听起来您的JAVA_HOME变量设置不正确,请按照说明进行设置。

在MAC OSX 10.9上设置JAVA_HOME环境变量

我想一旦您设置了此功能,它就会停止抱怨。


Noo*_*ain 6

2022 年:

安装 Android Studio 后,无需再下载 Java。

尽管现在 Android Studio 中嵌入了 Java 11,但在 Mac 上有时会出现此问题,并且找不到 Java 运行时。

所以,我通过执行以下两个步骤解决了这个问题:

  1. 在 Android Studio 中,转到“文件”>“项目结构”。如果在SDK条目下,你可以看到没有选择默认的SDK,而是有一个红色的文字“No SDK”,点击它,你会发现一个SDK/JDK列表,选择其中之一。就是这样。
  2. 确保从应用程序文件夹运行 Android Studio。为此,将 Android Studio 启动器复制到应用程序文件夹。然后在 Finder 中,转到“应用程序”文件夹。右键单击它。单击“显示包内容”,然后导航到 jre 文件夹。复制该文件夹并将其粘贴到您的主文件夹中。

现在从终端设置路径:您可以创建一个名为 java_jre 的文件夹,并且路径必须设置为jre/contents/Home

Noors-Mac-mini:bin noorhossain$ export JAVA_HOME="/Users/noorhossain/java_jre/jre/Contents/Home"
Run Code Online (Sandbox Code Playgroud)

// 现在检查版本:

Noors-Mac-mini:bin noorhossain$ java -version

openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
OpenJDK 64-Bit Server VM (build 11.0.11+0-b60-7772763, mixed mode)
Run Code Online (Sandbox Code Playgroud)


小智 6

2022 年,仅当安装 Android studio 时:

\n
    \n
  1. 检查Android studio中是否安装了JDK。在 Android Studio 中,转到“文件”>“项目结构”。在 SDK 条目下,如果没有选择默认 JDK,请从列表中选择,如果没有,则添加 JDK,然后应用安装。

    \n
  2. \n
  3. 在 Android studio 中安装 JDK 后,您只需直接从 Android Studio 添加 JDK 路径即可。在终端中运行以下命令即可。

    \n
  4. \n
\n
\n
echo \'export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"\' >> ~/.zshrc\n
Run Code Online (Sandbox Code Playgroud)\n
\n
    \n
  1. 现在,检查它是否正常工作。
  2. \n
\n
\n
\xe2\x9d\xaf java -version\nopenjdk version "11.0.11" 2021-04-20\nOpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)\nOpenJDK 64-Bit Server VM (build 11.0.11+0-b60-7772763, mixed mode)\n
Run Code Online (Sandbox Code Playgroud)\n
\n

无需从brew 安装任何软件包或创建任何符号链接。Java 已经嵌入到 Android studio 中,我们可以直接在我们的系统中使用它。

\n


fre*_*dev 5

TL; 博士

对于 JDK 11,试试这个:

为了以干净的方式处理这个问题,我建议使用brewjenv

对于 Java 11,请遵循以下 2 个步骤,首先:

JAVA_VERSION=11
brew reinstall jenv 
brew reinstall openjdk@${JAVA_VERSION}
jenv add /usr/local/opt/openjdk@${JAVA_VERSION}/
jenv global ${JAVA_VERSION}
Run Code Online (Sandbox Code Playgroud)

并将其添加到 shell 配置脚本的末尾
~/.bashrc~/.zshrc

export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"
Run Code Online (Sandbox Code Playgroud)

问题解决了!

然后重启你的shell并尝试执行 java -version

注意:如果您遇到此问题,则您当前的 JDK 版本不存在或配置错误(或者您可能只有 JRE)。