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.11 Major Updates:
- ✨ [Added] MacOS native menu bar support
- ✨ [Added] MacOS Dock menu support
- ✨ [Added] -Add application standard shortcut key support
- ✨ [Added] -Add internationalization support related to window management
- 🔄 [Changed] Window behavior on macOS platform
- 🔄 [Changed] -Improve the interaction method of tray icons
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
- 💝 Support the developer
Your support helps maintain and improve the project. Thank you to everyone who contributes!
