jenv:管理多个 Java 版本的命令行工具
文章目录jenv管理多个 Java 版本的命令行工具jenv管理多个 Java 版本的命令行工具jenv 是一个 Java 环境管理工具从 rbenv 演化而来在 GitHub 上有 6,620 个 Star。做 Android 开发的人经常会遇到这样的问题构建工具要求 Java 8但服务端项目用的是 Java 11 或更高版本。每次切换项目都要手动改 JAVA_HOME路径写错一个字符就可能编译失败。jenv 就是来解决这个问题的。jenv 本身不负责安装 Java它只管版本切换和环境变量配置。你需要先用系统包管理器把 Java 装好再通过jenv add把路径注册进去。版本切换的三种模式jenv 支持三个层级的版本设置global全局默认版本优先级最低local目录级别会在当前目录生成.java-version文件进入该目录自动生效shell仅在当前终端会话中生效优先级最高多个层级同时存在时高优先级覆盖低优先级。比如 global 设的是 17shell 设的是 11最终用的就是 11。安装和配置macOS 用户用 Homebrew 装就行brew install jenvLinux 用户也可以从源码安装克隆仓库到~/.jenv目录即可。装完后在 shell 配置文件里加一行初始化命令# bash echo eval $(jenv init -) ~/.bash_profile # zsh echo eval $(jenv init -) ~/.zshrc重启终端后生效。Fish shell 也有支持不过官方标注为未充分测试。接下来把已安装的 Java 注册进去jenv add $(/usr/libexec/java_home)用jenv versions查看已注册的版本列表。切换版本用jenv global、jenv local或jenv shell加--unset可以取消设置。安装完成后可以用jenv doctor检查状态它会告诉你 jenv 是否正确加载、JAVA_HOME 是否设置、Java 二进制是否在 shim 路径中。如果哪里有问题输出会直接标红提示。插件系统要让 jenv 自动设置 JAVA_HOME需要启用 export 插件jenv enable-plugin export除此之外jenv 还内置了 gradle、maven、ant、lein、sbt 等插件。启用后运行对应构建工具时会自动注入 JVM 参数。比如启用 gradle 插件后GRADLE_OPTS会被自动设置你不用再手动配置。典型使用场景假设你同时维护一个 Android 项目和一个 Spring Boot 服务。Android 项目需要 Java 8Spring Boot 用 Java 21。你可以在 Android 项目根目录执行jenv local 1.8在 Spring Boot 项目根目录执行jenv local 21。之后进入各自目录时jenv 会自动切换版本JAVA_HOME 也会跟着变。jenv 适合需要在多个 Java 版本之间频繁切换的开发者。Android 开发是典型场景构建工具对 Java 版本敏感经常需要固定到某个特定版本。服务端开发如果同时维护多个项目每个项目用不同的 JDKjenv 也能省不少事。具对 Java 版本敏感经常需要固定到某个特定版本。服务端开发如果同时维护多个项目每个项目用不同的 JDKjenv 也能省不少事。

相关新闻