React Native:未设置 JAVA_HOME,在您的 PATH 中找不到“java”命令

Posted

技术标签:

【中文标题】React Native:未设置 JAVA_HOME,在您的 PATH 中找不到“java”命令【英文标题】:React Native: JAVA_HOME is not set and no 'java' command could be found in your PATH 【发布时间】:2018-06-26 04:54:09 【问题描述】:

我一步步关注了官方Getting Started。我从一个干净的 linux 安装开始,并根据“使用本机代码构建项目”选项卡安装了所需的一切。我还阅读了故障排除部分。我已经使用终端创建了项目。

这是我运行react-native run-android时的错误:

    Starting JS server...
    Building and installing the app on the device (cd android && ./gradlew installDebug)...

    ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

    Please set the JAVA_HOME variable in your environment to match the
    location of your Java installation.

    Could not install the app on the device, read the error above for details.
    Make sure you have an Android emulator running or a device connected and have
    set up your Android development environment:
    https://facebook.github.io/react-native/docs/android-setup.html

它没有找到 JAVA_HOME,因为最新版本的 Android Studio 不需要在系统中安装 Java。而是使用内部 JRE。

重复免责声明:我已经阅读了this question。这不是我想要的。我知道如何设置 Java 主页。我只想运行 react 项目而无需安装单独的 Java。

问题:

    如何在 Android Studio 文件夹中找到内部 Java,以便将 JAVA_HOME 指向它? 如果不可能,我可以使用 Android Studio 打开并运行 android 文件夹中的项目吗?修改父文件夹中的 React javascript 代码后如何刷新此项目?

【问题讨论】:

如果您正在寻找 Android Studio 的内部 Java (JRE),它位于安装 android studio 的文件夹本身。在 Windows 上,我在 Android Studio/jre 上找到了它。我不确定在 linux 上哪里可以找到它。 @TentenPonce 是的,就是这样。谢谢! 我已将其添加为答案,以便其他人可以将其用作参考。谢谢。 实际上,我在设置 React Native 时遇到了问题。我所做的只是重新启动了我的电脑。就是这样! 【参考方案1】:

在 Android Studio 中,转到文件、设置、“构建、执行、部署”、构建工具、Gradle。您应该在那里看到 JDK 的路径,如屏幕截图所示(在 Android Studio 版本 2020.3.1 上测试)。设置一个名为 JAVA_HOME 的环境变量,其中包含该路径(只需谷歌“设置环境变量”,后跟您的操作系统名称)。

【讨论】:

【参考方案2】:

我在 Windows 上解决此问题的方法是转到环境变量并将变量名称设置为 JAVA_HOME,然后将变量值设置为 C:\Program Files\OpenJDK\openjdk-8u312-b07

然后我将路径设置为 C:\Program Files\OpenJDK\openjdk-8u312-b07\bin

【讨论】:

【参考方案3】:

我在我的机器上使用 Ubuntu 20,我遇到了同样的问题,对我有用的是:

sudo apt-get install default-jre

您可以通过以下方式验证安装是否成功:

java --version

您会在终端中看到类似的内容

openjdk 11.0.12 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-Ubuntu-0ubuntu3)
OpenJDK 64-Bit Server VM (build 11.0.12+7-Ubuntu-0ubuntu3, mixed mode, sharing)

【讨论】:

【参考方案4】:

对于鱼类用户:

    打开~/.config/fish/config.fish; 包括set JAVA_HOME /home/ronald/Documents/android-studio/jreset PATH $PATH $JAVA_HOME 行; 重新开放鱼码头。

欢迎 :)

【讨论】:

【参考方案5】:

经过很多努力以找到解决方案,包括通过许多文章。我刚刚意识到,当您提取 Android SDK 时,它并没有出现在 cmdline-tools/latest 文件夹中,而且我将文件夹 opt/Androd_SDK、$HOME/Android_SDK 放在哪里都没有关系,错误的顺序是相同。直到我运行这个错误:

➜ bin ./sdkmanager -version 错误:无法确定 SDK 根目录。 错误:使用 --sdk_root= 明确指定它或将此包移动到其预期位置:/cmdline-tools/latest/

因此,基本的解决方案是将 SDK zip 的内容添加到文件夹 cmdline-tools/latest 中。

完成此操作后,SDK 和所有命令将正常工作。只是别忘了完成配置,比如创建Android SDK、JAVA等环境。

一篇很棒的文章是: https://medium.com/@khairold/setting-up-react-native-on-linux-without-android-studio-a65f3e011bbb

;)

【讨论】:

【参考方案6】:

对于ubuntu 16.0+

你可以在这个路径/snap/android-studio/current/android-studio/jre找到android studio中的jre文件夹

在您的.bashrc.bash_profile 中添加以下行

export JAVA_HOME=/snap/android-studio/current/android-studio/jre

类型

sudo nano $HOME/.bashrc

sudo nano $HOME/.bash_profile

在此之后,在您正在执行 npx react-native run-androidterminal 中执行以下行以使用新更改重新加载终端

source $HOME/.bashrc

source $HOME/.bash_profile

【讨论】:

【参考方案7】: 显然系统变量与用户不同步 变量 在命令提示符下以管理员身份运行并设置变量 我还看到了一些关闭节点窗口和 vscode 终端的提示 要生效的变量

来自本网站的提示 https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.html

setx -m JAVA_HOME "C:\Progra~1\Java\jdk1.8.0_XX"

然后

echo %JAVA_HOME%

【讨论】:

【参考方案8】:

对于那些仍然无法从 Android Studio 安装中设置 JAVA_HOME 的人,对我来说,路径实际上不在 C:\...\Android Studio\jre

而是在...\Android Studio\jre\jre

别问我为什么。

Environment variables jre location snippet

【讨论】:

【参考方案9】:

Windows 10:

Android Studio -> 文件 -> 其他设置 -> 默认项目结构... -> JDK 位置:

复制字符串显示,如:

C:\Program Files\Android\Android Studio\jre

在文件定位器目录窗口中,右键单击“这台电脑”->

属性 -> 高级系统设置 -> 环境变量... -> 系统变量

点击系统变量下的新建...按钮,然后分别输入和粘贴:

.......变量名:JAVA_HOME

.......变量值:C:\Program Files\Android\Android Studio\jre

然后点击确定按钮关闭。

某些安装可能还需要设置 JRE_HOME,方法相同。

要检查,打开一个新的黑色控制台窗口,然后输入 echo %JAVA_HOME% 。您应该取回您在系统变量中键入的完整路径。 Windows 10 似乎很好地支持系统变量的文件名路径中的空格,并且似乎不需要 ~tilde 省略。

【讨论】:

一个完整的答案!确保按照答案中的定义在全新的控制台中尝试“echo %JAVA_HOME%”。我用旧的控制台做了,但从未成功。 我的问题是我没有安装 Java ......我真傻。谢谢! 我确实需要重新启动我的 Windows 机器才能让它工作!即使 echo %JAVA_HOME% 返回正确的文件路径。 您可能需要重新启动 PC 才能识别“环境变量”中的此更改。【参考方案10】:

我通过安装jre 解决了这个问题,我已经安装了jdk 但没有安装jre

【讨论】:

【参考方案11】:

我在命令提示符下运行了这个(有 Windows 7 操作系统): JAVA_HOME=C:\Program Files\Android\Android Studio\jre

它的 = to 是那个 jre 文件夹的路径,所以任何人都可以不同。

【讨论】:

【参考方案12】:

请在用户变量中添加系统变量no中的JAVA_HOME

    创建变量名称为 JAVA_HOME 请在值框中使用这些格式 --> C:\Program Files\Java\jdk(version) 您拥有或下载的内容。

【讨论】:

非常感谢马努!没有其他人提到这个细节,我只是无法让它更早地工作。【参考方案13】:
    确保已安装 java 你的路错了

这样做:

    export | grep JAVA

结果:java home 设置为什么

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
    按照路径查看目录是否正确

我在我的终端上做了这个:

open /Library

然后我去了 /Java/JavaVirturalMachines 原来我有错误的“jdk1.8.0_202.jdk”文件夹,还有另一个数字...... 4.你可以使用这个命令来设置java_home

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home

【讨论】:

【参考方案14】:

我会回答我自己的问题并赞助我的 Linux 用户:

1- 要将 JAVA_HOME 指向 Android Studio 包含的 JRE,首先找到 Android Studio 安装文件夹,然后找到 /jre 目录。该目录的完整路径是您需要将 JAVA_PATH 设置为(感谢@TentenPonce 他的answer)。 在 linux 上,您可以通过将此行添加到 .bashrc.bash_profile files 来设置 JAVA_HOME:

export JAVA_HOME=<Your Android Studio path here>/jre

这个文件(一个或另一个)与你添加 ANDROID_HOME 的那个文件相同,如果你正在关注 React Native 的 Linux 入门。默认情况下两者都是隐藏的,可以在您的主目录中找到。添加该行后,您需要重新加载终端,以便它可以获取新的环境变量。所以输入:

source $HOME/.bash_profile

source $HOME/.bashrc

现在您可以在同一个终端中运行react-native run-android。另一种选择是重新启动操作系统。其他终端的工作方式可能不同。

注意:要真正运行项目,您需要提前启动 Android 模拟器,或连接真实设备。最简单的方法是打开一个已经存在的 Android Studio 项目并从那里启动模拟器,然后关闭 Android Studio。

2- 因为react-native run-android 似乎做的就是这样:

cd android && ./gradlew installDebug

您实际上可以使用 Android Studio 打开嵌套的 android 项目并手动运行它。如果您在模拟器中enable live reload,则可以重新加载 JS 更改。键入 CTRL + M(在 MacOS 上为 CMD + M)并在出现的菜单中选择“启用实时重新加载”选项(感谢 @BKO for his answer)

【讨论】:

对我来说,将 JRE 的路径设置为 JAVA_HOME 后给出相同的错误 我必须先安装'Android SDK Platform 28'和'Intel x86 Atom_64 System Image'吗? (泽山艾哈迈德) 在系统变量中设置 JAVA_HOME 后仍然报同样的错误 我没有看到/home/username/Android/Sdk/里面的/jre build-tools/ patcher/ system-images/ .downloadIntermediates/ platforms/ .temp/ emulator/ platform-tools/ tools/ .knownPackages skins/ licenses/ sources/是我在安装过程中出错了吗? 我们应该如何找到jre 文件夹?【参考方案15】:

我认为找到Android Studio使用的内部Java的正确方法是

    打开 Android Studio 转到文件->其他设置->默认项目结构/JDK位置: 并复制那里指定的任何字符串

这不需要记住文件夹或搜索 java,而且我认为这些步骤将通过 Android Studio 团队更改对 java 位置的任何未来更改

【讨论】:

这是找到它的好方法。节省了几分钟......谢谢 Android Studio 3.4.1,位于文件 -> 项目结构 -> 平台设置 -> SDKs -> 1.8 -> JDK 主路径【参考方案16】:

我所做的只是从 cmd(命令提示符)转到我的项目目录,我输入了 java -version。它告诉我它正在寻找什么版本。所以我安装了那个版本,我把路径改成了那个版本的 jdk 所在的位置。

【讨论】:

【参考方案17】:

它位于您安装它的Android Studio 文件夹本身。

【讨论】:

以上是关于React Native:未设置 JAVA_HOME,在您的 PATH 中找不到“java”命令的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序未在 React-Native firebase 中运行时如何设置通知声音

React Native mapStateToProps未设置state + Redux

React Native 生成​​签名的 APK “未设置用于签名配置发布的 KeyStore 文件”

React Native:未设置 JAVA_HOME,在您的 PATH 中找不到“java”命令

未找到用于 react-native 的 Android SDK

React-native-maps 标记方法 animateMarkerToCoordinate 抛出未定义的错误