A user-friendly JDK version management tool supporting Windows, macOS, and Linux platforms.
- 🚀 Online JDK Download: Support major JDK distributions (Oracle JDK, OpenJDK, Eclipse Temurin, Microsoft OpenJDK, Amazon Corretto, Azul Zulu)
- 📂 Local JDK Management: Support importing and managing locally installed JDKs, including package manager installations
- 🔄 Smart Version Switching: Seamless switching through symbolic links, with quick access from system tray menu
- 🛠 Environment Variable Management: Auto-configure and sync environment variables (JAVA_HOME, PATH, CLASSPATH), with backup and restore support
- 💡 System Tray: Display current JDK version, support quick switching and status monitoring
- 🎨 Theme Switching: Built-in light, dark, and cyan themes with system theme auto-follow
- 🌐 Internationalization: Complete Chinese and English interface support with runtime switching
- 📚 Documentation: Built-in detailed user guide with search and quick navigation
- 🖥 Multi-platform Support:
- Windows: Support Windows 10/11 native symbolic links, auto-configure system environment variables
- macOS: Support symbolic link switching, auto-update shell configuration (bash/zsh)
- Linux: Support symbolic link switching, auto-update shell configuration files (bash/zsh/fish)
- 🔧 Portable Mode: Support both portable (standalone) and installer versions
- 🔄 Auto Update: Support online update checking with configurable update cycle and notification
- Windows 10/11, macOS 10.15+, or Linux (major distributions)
- Python 3.8+
- PyQt6 >= 6.4.0
- Disk Space: At least 100MB (excluding downloaded JDKs)
- GitHub Releases (International)
- Gitee Releases (Mainland China)
- Installer Version
- Download and run the latest installer (jvman-x.x.x-windows-setup.exe)
- Follow the installation wizard
- Launch from Start menu or desktop shortcut
- Portable Version
- Download the latest ZIP file
- Extract to any directory
- Run jvman.exe
- Download the latest DMG file
- Open DMG and drag the app to Applications folder
- Run jvman.app
- Download the latest AppImage or deb/rpm package
- Install the package or run AppImage directly
- Clone repository:
git clone https://gitee.com/l06066hb/jvman.git or https://github.com/l06066hb/jvman.git
cd jvman- Install dependencies:
pip install -r requirements.txt- Run the program:
python src/main.py- Add Local JDK
- Click "Add Local JDK"
- Select JDK installation directory
- Confirm addition
- Version Switching
- Select target JDK from list
- Click "Switch Version" or use tray menu for quick switching
- Wait for completion
- Select JDK distribution and version
- Choose download directory
- Click download and wait for completion
- Oracle JDK: Official distribution, Oracle account required
- OpenJDK: Official open-source version
- Eclipse Temurin: Maintained by Eclipse Foundation, long-term stable support
- Amazon Corretto: Amazon distribution, optimized for cloud environments
- Zulu OpenJDK: Azul distribution, comprehensive version support
- Recommend LTS (Long Term Support) versions for production
- If download fails, try:
- Use proxy or VPN
- Switch to another distribution
- Download manually from official website and import
- Some versions may be unavailable due to end of support
- Auto-configure JAVA_HOME, PATH, and CLASSPATH
- Support both automatic and manual configuration modes
- Real-time environment variable sync status display
- Support major IDEs (IntelliJ IDEA, VS Code, Eclipse)
- Automatic version sync using symlink path
- See IDE Integration Guide for details
- Real-time display of current JDK version
- Quick version switching
- Minimize to tray for background operation
- Uses symbolic links for version switching
- Admin privileges required for system environment variables
- Supports Windows 10/11 native symbolic links
- Auto-configures system environment variables (JAVA_HOME, PATH)
- Uses symbolic links for version switching
- Auto-updates shell config files (~/.zshrc, ~/.bash_profile)
- Uses symbolic links for version switching
- Auto-updates shell config files (~/.bashrc, ~/.zshrc)
- Recommend using ZIP version JDKs to avoid conflicts
- Try manual download if automatic download fails
- Oracle JDK: https://www.oracle.com/java/technologies/downloads/
- OpenJDK: https://jdk.java.net/
- Eclipse Temurin (Adoptium): https://adoptium.net/temurin/releases/
- Amazon Corretto: https://aws.amazon.com/corretto/
- Zulu OpenJDK: https://www.azul.com/downloads/
python scripts/build.py --platform windows --type portablepython scripts/build.py --platform windows --type installerpython scripts/build.py --platform windows --type allv1.0.12 Major Updates:
- ✨ [Added] Added macOS Apple Silicon (M-series) native build (macOS-14 runner)
- ✨ [Added] Added Linux ARM64 build (ubuntu-24.04-arm runner)
- ✨ [Added] Intel/ARM version
- ✨ [Added] Arch installation/portable bag
- 🔄 [Changed] Python version upgraded from 3.8 to 3.11 (3.8 does not support Apple Silicon native)
- 🔄 [Changed] The Architecture field of the installation package has been changed from hard coded AMD64 to dynamically generated based on the build architecture
For complete release notes, please check CHANGELOG.en.md
We welcome Issues and Pull Requests to help improve this project.
- Ensure Python 3.8 or higher is installed
- Install virtual environment (recommended):
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate- Install development dependencies:
pip install -r requirements-dev.txt- Security Notes:
- Don't hardcode any keys or sensitive information
- Use .env file for local config (excluded in .gitignore)
- Ensure sensitive information isn't committed
- Fork the project to your repository
- Create a feature branch:
git checkout -b feature/your-feature-name- Commit changes:
git commit -am 'Add new feature: feature description'- Push to your repository:
git push origin feature/your-feature-name- Create Pull Request
-
Code Style
-
Commit Standards
- Run unit tests before submission:
pytest tests/ - Commit message format:
<type>: <description> <optional detailed description> - Type descriptions:
- feat: New feature (e.g., adding dark theme)
- fix: Bug fix (e.g., fixing environment variable setup)
- docs: Documentation changes (e.g., updating README)
- style: Code formatting (e.g., adjusting indentation)
- refactor: Code refactoring (e.g., restructuring configuration)
- perf: Performance optimization (e.g., improving download speed)
- test: Test cases (e.g., adding unit tests)
- ci: Continuous integration (e.g., modifying GitHub Actions)
- chore: Other changes (e.g., updating dependencies)
- Run unit tests before submission:
jvman/
├── src/ # Source code directory
│ ├── ui/ # User interface code
│ ├── utils/ # Utility classes and helper functions
│ └── i18n/ # Internationalization resources
├── tests/ # Test cases
├── docs/ # Documentation
├── scripts/ # Build and utility scripts
├── config/ # Configuration files
├── resources/ # Resource files
│ └── icons/ # Icon resources
└── requirements/ # Dependency configuration files
A: Ensure running with admin privileges or manually copy environment variable values.
A: Configure proxy server in settings or use manual download feature.
A: Program config files are stored in %APPDATA%/jvman, simply copy this directory.
A: Check for sufficient privileges and ensure target JDK directory exists and is complete.
This project is licensed under the MIT License - see the LICENSE file for details.
If this project has been helpful to you, you can:
- ⭐ Star this project
- 🐛 Submit Issues or Pull Requests
- 💬 Help answer other users' questions
- 💝 Sponsor the developer:
- China — Afdian / 爱发电 (WeChat Pay / Alipay)
- International — Ko-fi (Visa / PayPal)
- 📖 See sponsor guide for more options
Your support helps maintain and improve the project. Thank you to everyone who contributes!