从零开始配置 React Native 开发环境:Node.js 与 JDK 实战指南
你是不是也曾在尝试运行npx react-native run-android时,被一连串的错误提示劝退?
“JAVA_HOME is not set”、“command not found: node”……这些看似简单的报错背后,其实是开发环境搭建中最关键的一环——Node.js 和 JDK 的正确安装与配置。
别担心。这篇文章不讲空话,也不堆术语,专为刚入门 React Native 的开发者打造。我会像朋友一样,手把手带你走过每一步:从下载、安装到环境变量设置,再到常见问题排查,让你真正搞懂为什么需要它们、怎么配才不出错。
为什么 React Native 需要 Node.js 和 JDK?
在动手之前,先搞清楚“为什么要装”。
Node.js 是你的 JavaScript 引擎大脑
React Native 虽然写的是 JS/TS,但它不是网页,不能直接在浏览器里跑。那代码是怎么变成手机上能执行的应用程序的呢?
靠的就是Node.js。
它负责:
- 启动 Metro 打包器(实时监听你的 JS 文件变化)
- 安装项目依赖(npm/yarn 全靠它)
- 运行命令行工具(比如react-native init)
你可以把它理解为:整个 React Native 开发流程的“控制中心”。
🧠 小知识:Metro 是 Facebook 自研的 JS 打包工具,类似 Webpack,但专为移动端优化。
JDK 是 Android 编译的“地基”
而当你想把应用运行在安卓设备上时,光有 JS 不够。React Native 框架底层其实是由 Java/Kotlin 写成的原生模块组成的。
所以每次构建 APK,系统都要调用 Android 的编译工具链 —— Gradle。而Gradle 是基于 JVM 运行的,这就必须依赖 JDK。
简单说:
- 你写的 JS → 由 Node.js 处理
- 原生部分(Android)→ 由 JDK 支持编译
⚠️ 注意!很多人误装了 JRE(仅运行环境),结果无法编译,因为少了
javac编译器。记住:要装的是JDK,不是 JRE!
第一步:安装 Node.js(稳定优先)
选择哪个版本?
官网有两个版本可选:
-LTS(长期支持版)→ 推荐新手使用
-Current(最新特性版)
对于 React Native 开发者来说,强烈建议使用 LTS 版本,目前主流是Node.js 18 或 20。
不同 RN 版本对 Node 有兼容要求:
| React Native 版本 | 推荐 Node.js |
|---|---|
| 0.69 ~ 0.71 | Node 16 / 18 |
| 0.72+ | Node 18 / 20 |
👉 下载地址: https://nodejs.org
安装步骤(Windows/macOS)
- 访问官网,点击“Download” LTS 版本
- 双击安装包,一路“Next”,使用默认选项即可
- 安装完成后自动加入 PATH 环境变量(大多数情况下)
✅ 验证是否成功:
打开终端或 CMD,输入:
node --version npm --version如果输出类似:
v20.12.0 10.5.0恭喜!Node.js 已就位。
多版本管理神器:nvm(推荐进阶用户)
如果你未来可能接触多个项目,每个项目用的 Node 版本不同,怎么办?
别急着卸载重装,用nvm(Node Version Manager)。
macOS/Linux 用户:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash重启终端后:
nvm install 20 nvm use 20 nvm alias default 20Windows 用户也有解决方案:
搜索安装nvm-windows(GitHub 开源项目),操作类似。
第二步:安装 JDK 17(Android 构建刚需)
为什么是 JDK 17?
自 React Native 0.74 起,官方已全面迁移到JDK 17。旧版本(如 JDK 8)会导致 Gradle 构建失败,报错:
Unsupported class file major version 61 (or 63)这是因为 JDK 版本和编译目标不匹配。
📌 所以结论很明确:请安装 OpenJDK 17 LTS。
下载与安装方式
方法一:图形化安装(适合新手)
前往 Eclipse Adoptium (原名 Temurin)
选择:
- Platform: Windows x64 / macOS Apple Silicon 等
- Version: 17 (LTS)
- Package Type:.msi(Windows)或.pkg(macOS)
下载后双击安装,路径会自动注册。
方法二:macOS 用户可用 Homebrew(高效快捷)
brew install openjdk@17安装完成后,通常需要手动链接:
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk设置环境变量:让系统找到 JDK
这是最容易出错的地方!
即使你装了 JDK,如果不告诉系统“它在哪”,命令行依然找不到。
Windows 设置JAVA_HOME
- 打开“系统属性” → “高级” → “环境变量”
- 在“系统变量”中新建:
- 变量名:JAVA_HOME
- 变量值:你的 JDK 安装路径,例如C:\Program Files\Eclipse Adoptium\jdk-17.0.10.7-hotspot - 编辑
Path,添加:%JAVA_HOME%\bin
保存退出,重启 CMD 终端。
macOS/Linux 设置(编辑 shell 配置文件)
根据你用的 shell(zsh/bash),修改对应配置文件:
# 查看当前 shell echo $SHELL通常是~/.zshrc或~/.bash_profile
添加以下内容:
export JAVA_HOME=$(/usr/libexec/java_home -v 17) export PATH=$JAVA_HOME/bin:$PATH保存后执行:
source ~/.zshrc验证 JDK 是否生效
在终端运行:
java -version javac -version正确输出应为:
openjdk version "17.0.10" 2024-01-16 OpenJDK Runtime Environment (build 17.0.10+7) OpenJDK 64-Bit Server VM (build 17.0.10+7, mixed mode) javac 17.0.10✅ 成功!JDK 已准备就绪。
实战演练:创建第一个项目,验证环境
现在我们来走一遍完整流程,检验环境是否真的 OK。
1. 初始化项目
npx react-native init MyFirstApp等待几分钟,npm 会自动下载模板和依赖。
💡 提示:国内网络慢?可以换淘宝镜像源:
bash npm config set registry https://registry.npmmirror.com
2. 进入项目并启动 Metro
cd MyFirstApp npx react-native start浏览器会打开http://localhost:8081,说明打包服务已启动。
3. 运行 Android 应用
确保你已开启安卓模拟器或连接真机。
新开一个终端窗口,执行:
npx react-native run-android这时你会看到:
- Node.js 触发 Gradle 构建
- Gradle 调用 JDK 编译原生代码
- 最终 APK 安装到设备并启动
🎉 如果屏幕上出现 “Welcome to React Native”,说明你已经成功跨越了最大的门槛!
常见坑点与调试秘籍
别以为装完就万事大吉。以下是新手最常踩的雷区,我都替你踩过了。
❌ 错误1:Error: JAVA_HOME is not defined
原因:没设置JAVA_HOME或拼写错误
解决:
- 检查变量名是否全大写
- 检查路径是否存在空格或中文
- Windows 用户可用引号包裹路径:"C:\Program Files\..."
❌ 错误2:Unsupported class file major version 63
含义:用了 JDK 21(version 63 = JDK 21)
解决:
降级到 JDK 17,并确认java -version输出确实是 17。
❌ 错误3:Could not find an installed version of Gradle
可能原因:
- Android Studio 没装好
- Gradle wrapper 下载失败
建议做法:
进入android/目录,手动运行:
./gradlew --version让它自动下载 Gradle Wrapper。
❌ 错误4:adb: command not found
说明:Android SDK 没配好
临时方案:
安装 Android Studio,它会帮你一键配置 SDK、ADB、Emulator。
长远建议:
学习配置独立的 Android 命令行工具(Android Command Line Tools)。
团队协作最佳实践
如果你不是一个人在战斗,下面这些规范能避免“在我电脑上好好的”这种经典问题。
✅ 统一版本标准
在项目根目录加个文档,比如ENVIRONMENT.md:
## 开发环境要求 - Node.js: v20.x (LTS) - JDK: 17 (OpenJDK) - npm: >= 10.0 - Android Studio: Giraffe 以上或者更进一步,用.nvmrc文件指定 Node 版本:
20.12.0然后团队成员只需运行:
nvm use即可切换到一致版本。
✅ 使用版本管理工具
| 工具 | 用途 |
|---|---|
nvm | 管理多个 Node.js 版本 |
jenv | 管理多个 JDK 版本(macOS/Linux) |
asdf | 统一管理多种运行时(Node + JDK) |
举个 asdf 的例子:
# 安装 asdf brew install asdf # 添加插件 asdf plugin add nodejs asdf plugin add java # 安装指定版本 asdf install nodejs 20.12.0 asdf install java openjdk-17.0.10+7 # 设为项目级默认 echo 'nodejs 20.12.0' > .tool-versions echo 'java openjdk-17.0.10+7' >> .tool-versions下次任何人克隆项目,运行asdf install就能一键拉齐环境。
写在最后:打好基础,才能走得更远
也许你会问:“现在不是有 Expo 吗?不是可以免配置吗?”
没错,Expo 确实大大简化了环境搭建,适合快速原型开发。但一旦你要接入原生模块、自定义权限、集成第三方 SDK,还是得回到这套原始工具链上来。
懂得如何手动配置 Node.js 和 JDK,不只是为了跑通一条命令,而是建立起对整个构建系统的掌控力。
当你下次遇到构建失败时,不再只会复制粘贴 Stack Overflow 的答案,而是能冷静分析日志,定位问题是出在 JS 层、Gradle 还是 JDK 版本冲突。
这才是真正的工程师思维。
如果你正在学习 React Native,不妨把这篇指南收藏起来。等哪天又要配环境的时候,你会发现,原来那些曾经让人崩溃的问题,如今早已胸有成竹。
欢迎在评论区分享你在配置过程中遇到的奇葩问题,我们一起排雷!