FlyEnv:把 Java 开发环境,从"配置两小时"变成"点击三下"
一款运行在 macOS / Windows / Linux 上的原生本地开发环境管理工具。不用 Docker、不用虚拟机、不用到处找
export JAVA_HOME的教程。官网:https://flyenv.com/zh/ | 开源仓库:https://github.com/xpf0000/FlyEnv | 社区版永久免费
一、Java 开发者的环境之痛
同时维护几套 Java 项目的人,对下面的场景不会陌生:
- 老 SSM 项目只认JDK 8,Spring Boot 3 微服务要JDK 17,想试试虚拟线程又得JDK 21
- 每换一次项目,就要改
~/.zshrc或系统环境变量 → 重启终端 → 验证JAVA_HOME改错了就是一行Unsupported class file major version - Maven 的
settings.xml镜像、Tomcat 的路径、MySQL 的端口、忘记关掉的 Redis,散落在各处 - 用 Docker 起一整套依赖,笔记本风扇狂转、内存常年几个 GB,只为了跑一个本地 Demo
FlyEnv 的思路很简单:环境的事,不该由开发者的手工劳动来买单。
二、FlyEnv 是什么
FlyEnv 不是虚拟机,也不是容器平台,而是一个直接管控原生二进制的轻量管理台:
| FlyEnv | Docker Desktop | XAMPP / MAMP | |
|---|---|---|---|
| 运行方式 | 原生静态二进制,无虚拟化层 | 容器 + 虚拟机层 | 原生,但打包固定 |
| 启动速度 | 毫秒级 | 秒级到数十秒 | 秒级 |
| 资源占用 | 官方称比 Docker Desktop 低约80%内存 | 高 | 中 |
| 多版本并存 | ✅ 一键安装、并行运行 | ⚠️ 需编写镜像/Compose | ❌ 全局单一版本 |
| 项目级自动切换 | ✅ 含 Java 在内的 6 种语言 | ❌ 需手工编排 | ❌ |
| 图形化管理日志/配置 | ✅ 统一面板 | ❌ 依赖命令行与 YAML | ⚠️ 层级较深 |
它管的是你真正需要的那一套:JDK、Maven、Gradle、Tomcat、Nginx/Apache、MySQL/MariaDB/PostgreSQL/MongoDB、Redis/RabbitMQ/Memcached、Elasticsearch、Minio、Mailpit、DNS 服务、Cloudflare Tunnel……全部在一个界面里安装、启停、看日志、改配置。
三、10 分钟搭好一套完整 Java 开发环境
官方文档:使用 FlyEnv 搭建 Java 开发环境
第 1 步:安装 FlyEnv
# macOSbrewinstallflyenv- Windows:安装版
FlyEnv-Setup.exe或免安装的便携版 - Linux:
.deb/.rpm(x86_64 与 arm64 都有)
第 2 步:装 JDK,一行环境变量都不用写
进入Java 模块 → 版本管理,列表里OpenJDK 8 一直到最新版本应有尽有,点 Install 就自动下载安装。
装完切到服务管理面板,点一下设置环境变量——FlyEnv 会自动把java、javac、jar等命令路径注入系统PATH,并自动设置好JAVA_HOME。
曾经最烦的那件事:改 shell 配置、改注册表、开新终端验证。现在是一个按钮。
装好的 JDK 是标准目录结构,IntelliJ IDEA / VS Code 的 Project SDK 可以直接指向它,不必再单独下载一份。
第 3 步:装 Maven
在Java 模块 → Maven 管理中选择版本(覆盖Maven 2.x 到最新版),安装后再点一次设置环境变量,mvn -v立刻可用。
第 4 步:装 Tomcat
同样在 Java 模块内安装Tomcat 8 到最新版,点击设置环境变量即可。
到这里,JDK + Maven + Tomcat 齐了 —— 全程没有打开过任何配置文件。
四、最香的功能:Java 项目级环境自动切换
这是 FlyEnv 与所有传统集成环境的分水岭:环境跟着项目走,而不是让项目去适应全局环境。
在 Java 模块的项目管理里:
- 点击"添加项目",填名称 + 项目绝对路径
- 双击项目,从版本下拉框里为它锁定专属的 JDK / Maven 版本
- 需要的话,在"项目环境"里为该项目单独添加或覆盖环境变量
配置一次,之后:
cd~/work/legacy-ssm-projectjava-version# 1.8mvn-v# 自动匹配该项目绑定的 Mavencd~/work/spring-boot-3-apijava-version# 17FlyEnv 的 shell 集成会识别你当前所在目录,在命令执行前注入正确的路径。没有jenv local,没有sdk use java,不会忘记切换。
一个典型的真实组合
| 项目 | 绑定 JDK | 绑定 Maven | 配套服务 |
|---|---|---|---|
| 银行老核心(SSM + WAR 包) | OpenJDK 8 | 3.6.x | Tomcat 9 + MySQL 5.7 |
| 公司微服务(Spring Boot 3) | OpenJDK 17 | 3.9.x | MySQL 8 + Redis + RabbitMQ |
| 个人实验(虚拟线程 / GraalVM 特性) | OpenJDK 21 | 最新 | PostgreSQL + Redis |
三个项目同时在 FlyEnv 里注册,互不干扰,随时cd随时切。而且 FlyEnv不会修改你的项目文件——不需要.nvmrc、不需要Dockerfile,团队里不用 FlyEnv 的同事完全不受影响。
五、后端日常开发的配套能力
- 数据库与中间件统一启停:MySQL 5.7/8.0、PostgreSQL、MongoDB、Redis、RabbitMQ、Elasticsearch、Minio 多版本共存,面板直接看运行状态与占用端口,端口冲突有可视化提示
- 日志与配置集中入口:Tomcat 日志、MySQL 日志、Nginx 访问日志不用再翻目录,实时日志流 + 错误高亮
- 本地域名 + 自动 HTTPS:内置 DNS 服务,自动配好
xxx.test与受信任证书,前后端联调、Cookie/跨域调试不再抓瞎 - 一行
PATH都不用记:内置 PATH 查看与管理快捷工具,随时看清当前系统路径里有什么 - 内网穿透:Cloudflare Tunnel 集成,本地 Java 接口一键给测试/产品演示
- 接上 AI 编程:内置 FlyEnv MCP Server,把本地服务、站点、运行时上下文暴露给 AI 编程客户端,让 AI 看到的是你真实的本地环境
六、价格与许可
| 社区版 | 专业版 | |
|---|---|---|
| 价格 | $0 / 永久免费 | 可通过金钱、代码贡献或宣传支持获取 |
| 所有语言模块(含 Java)无限安装 | ✅ | ✅ |
| 本地站点数量 | 3 个 | 无限制 |
| 自定义域名 + 通配符 + HTTPS | ✅ | ✅ |
| 多设备同步 | — | ✅ |
| 自定义端口与 CORS、完整邮件服务 | — | ✅ |
程序文件与数据文件分离,升级不丢配置;100% 开源、可审计、社区驱动。
七、谁适合,谁不适合
特别适合:
- 手头同时压着多个 JDK 版本要求的 Java 项目
- 用笔记本开发,嫌 Docker 吃内存、风扇吵
- 经常换设备/重装系统,希望环境能快速还原
- 团队里 Mac、Windows、Linux 混杂,想要一致的本地开发体验
- 新人入职,不想把第一天耗在装环境上
请继续用 Docker:需要本地复刻生产容器编排、K8s 调试、复杂多容器网络拓扑。FlyEnv 定位是日常本地开发,与 Docker 是共存关系,不必二选一。
八、开始使用
brewinstallflyenv或前往https://flyenv.com/zh/download.html下载对应平台的安装包。
装好后打开 Java 模块,装上 JDK 8 / 17 / 21,注册你的第一个项目 —— 从今天起,把搭环境的时间拿回去写代码。
让环境成为背景,让代码回到主角。
FlyEnv —— 让 Java 开发环境像飞一样顺。