jenv 使用教程
项目介绍
jenv 是一个用于管理 Java 环境的工具,它允许用户在不同的 Java 版本之间轻松切换。通过 jenv,开发者可以在同一台机器上安装和管理多个 JDK 版本,并根据需要为不同的项目或目录设置不同的 Java 版本。
项目快速启动
安装 jenv
在 macOS 上,可以使用 Homebrew 安装 jenv:
brew install jenv
或者使用 MacPorts:
sudo port install jenv
在 Linux 上,可以从源代码安装:
git clone https://github.com/jenv/jenv.git ~/.jenv
配置 shell
jenv 需要在你的 shell 中初始化。以下是针对不同 shell 的配置方法:
Bash
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
Zsh
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
添加 Java 环境
假设你已经安装了某个 JDK 版本,可以通过以下命令将其添加到 jenv 中:
jenv add /Library/Java/JavaVirtualMachines/openjdk-8.jdk/Contents/Home
查看和管理 Java 版本
查看所有已添加的 Java 版本:
jenv versions
设置全局 Java 版本:
jenv global openjdk64-1.8.0.222
设置本地 Java 版本(针对当前目录):
jenv local openjdk64-1.8.0.222
应用案例和最佳实践
多项目环境管理
假设你有两个项目,一个需要 Java 8,另一个需要 Java 11。你可以通过 jenv 为每个项目设置不同的 Java 版本:
-
为项目 A 设置 Java 8:
cd /path/to/projectA jenv local openjdk64-1.8.0.222 -
为项目 B 设置 Java 11:
cd /path/to/projectB jenv local openjdk64-11.0.2
持续集成环境
在持续集成(CI)环境中,jenv 可以帮助你轻松切换不同的 Java 版本进行构建和测试。例如,在 Jenkins 中,你可以在不同的构建步骤中切换 Java 版本:
pipeline {
agent any
stages {
stage('Build with Java 8') {
steps {
sh 'jenv local openjdk64-1.8.0.222'
sh 'mvn clean install'
}
}
stage('Build with Java 11') {
steps {
sh 'jenv local openjdk64-11.0.2'
sh 'mvn clean install'
}
}
}
}
典型生态项目
Maven
Maven 是一个强大的项目管理和构建工具,与 jenv 结合使用可以更好地管理项目依赖和构建过程。通过 jenv 设置不同的 Java 版本,可以确保 Maven 项目在正确的 Java 环境中构建。
Gradle
Gradle 是一个灵活且高效的项目自动化工具,与 jenv 结合使用可以实现更细粒度的 Java 版本管理。通过 jenv 设置不同的 Java 版本,可以确保 Gradle 项目在正确的 Java 环境中构建和运行。
IntelliJ IDEA
IntelliJ IDEA 是一个流行的 Java 集成开发环境(IDE),与 jenv 结合使用可以实现无缝的 Java 版本切换。通过 jenv 设置不同的 Java 版本,可以在 IDE 中为不同的项目配置不同的 Java 环境。
通过以上教程,你可以快速上手并充分利用 jenv 管理你的 Java 环境。希望这些内容对你有所帮助!
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0211
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0135
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03