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

我一步一步跟着官方的 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。

问题:

  1. 如何在 Android Studio 文件夹中找到内部 Java,以便将 JAVA_HOME 指向它?
  2. 如果不可能,我可以使用 Android Studio 打开并运行 android 文件夹中的项目吗?修改父文件夹中的 React JavaScript 代码后如何刷新此项目?
stack overflow React Native: JAVA_HOME is not set and no 'java' command could be found in your PATH
原文答案
author avatar

接受的答案

我将回答我自己的问题并赞助我的 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

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

source $HOME/.bash_profile

或者

source $HOME/.bashrc

现在您可以在同一个终端中运行 react-native run-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


答案:

作者头像

视窗 10:

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

复制显示的字符串,例如:

C:Program FilesAndroidAndroid Studiojre

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

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

点击 System Variables 下的 New... 按钮,然后分别输入并粘贴:

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

.......变量值: C:Program FilesAndroidAndroid Studiojre

并点击 OK 按钮关闭。

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

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

作者头像

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

1.打开安卓工作室
2.转到文件->其他设置->默认项目结构/JDK位置:
3.并复制那里指定的任何字符串

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

作者头像

它位于 Android Studio 文件夹本身,也就是您安装它的位置。

enter image description here

作者头像

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

  1. 创建变量名称为 JAVA_HOME
  2. 请在值框中使用这些格式 --> C:Program FilesJavajdk(version) 您拥有或下载的内容。
作者头像

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

作者头像

我在我的机器上使用 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)
作者头像

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

而是在 ...Android Studiojrejre 中。

不过不要问我为什么。

Environment variables jre location snippet

作者头像

对于 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

在此之后执行以下行到您正在执行 terminalnpx react-native run-android 以使用新更改重新加载终端

source $HOME/.bashrc

或者

source $HOME/.bash_profile
作者头像

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

相关问题