Kopi - JDK Version Manager
Kopi is a JDK version management tool written in Rust that integrates with your shell to seamlessly switch between different Java Development Kit versions.
📚 Full documentation at https://kopi-vm.github.io/
Installation
Homebrew (macOS)
PPA (Ubuntu/Debian)
# Import GPG key
| \
| \
# Add repository
| \
# Install
&&
Windows Package Manager
Scoop (Windows)
Cargo (All platforms)
Post-installation Setup
# Initial setup
# Add to PATH (in ~/.bashrc, ~/.zshrc, or ~/.config/fish/config.fish)
Quick Start
Essential Commands
# Install JDKs
# List installed JDKs
# Set versions
# Show current JDK
# Search available JDKs
# Uninstall JDKs
Working with Projects
# Create version file for project
# Kopi automatically switches when entering directories with version files
Development
Prerequisites
- Rust toolchain (1.70+)
- sccache (recommended):
cargo install sccache
Building from Source
# Development build
# Run tests
# Release build
Development Workflow
When completing any coding task:
- Run
cargo fmtto format code - Run
cargo clippy --all-targets -- -D warningsto check for improvements - Run
cargo test --lib --quietto run unit tests - Submit a pull request
All commands must pass without errors before considering work complete.
Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Documentation
- User Documentation: https://kopi-vm.github.io/
- Architecture Decision Records: docs/adr/
- Developer Reference: CLAUDE.md
License
Kopi is licensed under the Apache License 2.0. See LICENSE for details.
Acknowledgments
- JDK metadata originally sourced from foojay.io and optimized for fast access
- Inspired by volta, nvm, and pyenv
Built with ❤️ by the Kopi team