awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
jenv avatar

jenv/jenv

0
View on GitHub↗
6,621 stars·398 forks·Shell·MIT·24 viewswww.jenv.be↗

Jenv

Manage your Java environment

Features

  • JDK Version Managers - Switches the active JDK version globally by updating JAVA_HOME for all shell sessions.
  • Per-Directory Version Selectors - Sets JAVA_HOME automatically when entering a specific project directory, isolating JDK versions by project.
  • Global Version Switchers - Sets the default Java version for the entire system by updating the JAVA_HOME environment variable.
  • Runtime Version Switching - Switches between installed Java versions globally, per directory, or per shell session to match project requirements.
  • Shell Hook Integrations - Hooks into shell directory-change events to automatically switch Java versions based on project configuration.
  • Java Environments - Manages multiple Java versions and switches between them globally, per directory, or per shell session.
  • Per-Directory Version Selectors - Automatically selects a Java version when entering a project directory using .java-version files.
  • Shim-Based Command Interception - Intercepts Java commands through symbolic link shims in the PATH to redirect execution to the selected Java version.
  • Session Version Switchers - Sets JAVA_HOME for the current shell session only, allowing temporary JDK changes without affecting other terminals.
  • Java Home Overrides - Sets JAVA_HOME and related environment variables to control which Java runtime is used by tools and scripts.
  • Java Version Selectors - Uses .java-version files in project directories to automatically activate the specified Java version on directory entry.
  • Directory-Based Version Resolution - Automatically selects a Java version when entering a specific project directory.
  • Java - Configures a specific Java version to be used automatically when working inside a particular directory.
  • Directory-Aware Selectors - Automatically selects a Java version when entering a project directory using .java-version files.
  • JDK Registration Tools - Registers existing JDK installations so they become available for version switching.
  • Symbolic Link Managers - Maintains and repairs a set of symbolic links in a central shims directory to represent the active Java version.
  • Session Version Managers - Changes the active Java version for the current terminal session without affecting other sessions.
  • Java Environment Plugins - Loads optional plugins from a plugins directory to add commands like version diagnosis and symlink repair.
  • Version Managers - Java version manager with global or per-project configuration.

Star history

Star history chart for jenv/jenvStar history chart for jenv/jenv

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Jenv

These projects share indexed features with Jenv. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • rbenv/rbenvrbenv avatar

    rbenv/rbenv

    16,710View on GitHub↗

    rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple versions of the Ruby programming language. It functions as a project runtime isolator and an extensible versioning framework that ensures the correct Ruby binaries are executed based on the current context. The system uses a shim-based command interception model to resolve the active version before delegating execution to the binary. It allows for locking specific Ruby versions and environment variables to individual directories, ensuring project environment isolation. The ar

    Shellbashrubyruby-installation
    View on GitHub↗16,710
  • sdkman/sdkman-clisdkman avatar

    sdkman/sdkman-cli

    6,791View on GitHub↗

    SDKMAN is a command-line utility for installing, tracking, and managing multiple versions of software development kits on Unix systems. It functions as a software installer and environment manager that automates the downloading and configuration of development tools for Linux and macOS. The tool enables the installation of parallel SDK versions on a single system and provides the capability to toggle between them to change the active environment for a shell session. It specifically facilitates the setup of Java development environments, including the management of various Java Development Kit

    Shell
    View on GitHub↗6,791
  • pyenv-win/pyenv-winpyenv-win avatar

    pyenv-win/pyenv-win

    7,006View on GitHub↗

    pyenv-win is a version manager for Windows that enables the installation and switching of multiple Python versions without affecting the system global installation. It functions as a multi-version installer and environment controller that ensures isolation and reproducibility across different projects. The tool uses a shim-based routing system to intercept executable calls and direct them to specific versioned binaries. This allows for both system-wide default configurations and local directory-level overrides, where a specific version is automatically activated when entering a project folder

    VBScriptpyenvpyenv-alternativepyenv-for-windows
    View on GitHub↗7,006
  • creationix/nvmcreationix avatar

    creationix/nvm

    93,948View on GitHub↗

    nvm is a Node.js version manager implemented as a POSIX bash script. It serves as a shell environment manager and runtime orchestrator for installing, switching, and managing multiple versions of the Node.js runtime on POSIX systems. The tool allows for the automation of runtime switching by reading configuration files in project directories to select the required version. It supports the management of long-term support releases and the migration of global packages between different installed versions of the runtime. The project covers broader capabilities including runtime management throug

    Shell
    View on GitHub↗93,948
Compare all 30 related projects→

Frequently asked questions

What does jenv/jenv do?

Manage your Java environment

What are the main features of jenv/jenv?

The main features of jenv/jenv are: JDK Version Managers, Per-Directory Version Selectors, Global Version Switchers, Runtime Version Switching, Shell Hook Integrations, Java Environments, Shim-Based Command Interception, Session Version Switchers.

Which projects share features with jenv/jenv?

Projects with overlapping indexed features include: rbenv/rbenv — rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple… sdkman/sdkman-cli — SDKMAN is a command-line utility for installing, tracking, and managing multiple versions of software development kits… creationix/nvm — nvm is a Node.js version manager implemented as a POSIX bash script. It serves as a shell environment manager and… pyenv-win/pyenv-win — pyenv-win is a version manager for Windows that enables the installation and switching of multiple Python versions… version-fox/vfox — Vfox is a command-line utility designed to manage multiple programming language runtimes and development tools on a… xcodesorg/xcodes — xcodes is a command-line utility for macOS toolchain administration, specifically designed for the installation and…