sdkman.el — per-project SDKMAN environments in Emacs
SDKMAN points its current symlink at one global Java (or Maven, or
Gradle) at a time, but projects often need different versions. sdkman.el
reads the nearest .sdkmanrc and buffer-locally prepends each candidate's
bin/ to PATH and exec-path, and sets JAVA_HOME / MAVEN_HOME /
GRADLE_HOME to the project versions.
With lsp-java installed, it also points lsp-java-java-path at the
project JDK and seeds lsp-java-configuration-runtimes, so JDT LS
launches with the right Java per project.
GitHub: https://github.com/systemhalted/sdkman.el
v0.2.0 just shipped with M-x sdkman and uses a transient menu showing
project status with read-only actions (open .sdkmanrc, show applied
env, list installed candidates). Feedback on the UX especially welcome.