thehardwarestore.ai

where AI agents shop for the right tools

$ show ystyle/jvms

[account ↗] [repo ↗] APPLICATION ★ 1026 109 ● active (last update 2 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

JVMS (JDK Version Manager) is a Windows-specific CLI tool for managing multiple JDK installations. It allows users to install, switch between, and manage different JDK versions from various distributions (Oracle, Amazon Corretto, Adoptium, Azul Zulu). The application features both command-line and text-based user interfaces, modifies system environment variables (JAVA_HOME, PATH) to make JDKs available, and uses a symlink mechanism for persistent JDK switching across console sessions and reboots. Built in Go with a modular architecture, it separates concerns into command handling, data models, UI components, and utility packages for file operations, web downloads, and JDK provider management.

RATING8.6/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS11
VELOCITY0.69
OPEN ISSUES17
CLOSED ISSUES42
LAST COMMIT2 months ago
github.com/baneeishaque/adoptium_jdk_go (go) v0.0.0-20221214163615-0b2cfe72098d
github.com/charmbracelet/bubbles (go) v1.0.0
github.com/charmbracelet/bubbletea (go) v1.3.10
github.com/charmbracelet/lipgloss (go) v1.1.0
github.com/codegangsta/cli (go) v1.20.0
github.com/tucnak/store (go) v0.0.0-20170905113834-b02ecdcc6dfb
golang.org/x/sys (go) v0.41.0
gopkg.in/cheggaaa/pb.v1 (go) v1.0.28
github.com/atotto/clipboard (go) v0.1.4
github.com/aymanbagabas/go-osc52/v2 (go) v2.0.1
github.com/aymanbagabas/go-udiff (go) v0.4.1
github.com/charmbracelet/colorprofile (go) v0.4.2
github.com/charmbracelet/x/ansi (go) v0.11.6
github.com/charmbracelet/x/cellbuf (go) v0.0.15
github.com/charmbracelet/x/exp/golden (go) v0.0.0-20250806222409-83e3a29d542f
github.com/charmbracelet/x/term (go) v0.2.2
github.com/clipperhouse/displaywidth (go) v0.11.0
github.com/erikgeiser/coninput (go) v0.0.0-20211004153227-1c3628e74d0f
github.com/lucasb-eyer/go-colorful (go) v1.3.0
github.com/mattn/go-isatty (go) v0.0.20
github.com/mattn/go-localereader (go) v0.0.1
github.com/muesli/ansi (go) v0.0.0-20230316100256-276c6243b2f6
github.com/muesli/cancelreader (go) v0.2.2
github.com/muesli/termenv (go) v0.16.0
github.com/rivo/uniseg (go) v0.4.7
github.com/sahilm/fuzzy (go) v0.1.1
github.com/xo/terminfo (go) v0.0.0-20220910002029-abceb7e1c41e
golang.org/x/text (go) v0.3.8
github.com/BurntSushi/toml (go) v1.6.0
github.com/clipperhouse/uax29/v2 (go) v2.7.0
github.com/fatih/color (go) v1.13.0
github.com/itchyny/gojq (go) v0.12.18
github.com/itchyny/timefmt-go (go) v0.1.7
github.com/mattn/go-colorable (go) v0.1.12
github.com/mattn/go-runewidth (go) v0.0.21
gopkg.in/check.v1 (go) v1.0.0-20201130134442-10cb98267c6c
gopkg.in/yaml.v2 (go) v2.4.0
Files by Type (count)
Go
62
Other (no ext)
3
YAML
2
Git Ignore
2
Other (.png)
2
Markdown
1
Other (.mod)
1
Other (.sum)
1
JSON
1
Files by Type (size)
Go
98KB
Other (.png)
26KB
YAML
8KB
Other (.sum)
8KB
Markdown
7KB
Other (.mod)
1KB
Other (no ext)
1KB
JSON
1KB
Git Ignore
66B

The LLM identified 4 files worth highlighting for reuse:

Provides self-contained file utility functions including a robust Unzip implementation that properly handles directories and files, ReadLines for reading file contents, Exists for file existence checks, and GetCurrentPath for locating the executable directory. Zero internal dependencies make this highly reusable.

file: utils/file/file.go ↗ | tags: #file-utils #zip-handling #io-operations

Contains the GetJavaHome function that locates the Java home directory by finding javac.exe in a JDK temporary directory. This isolated utility has zero internal dependencies and demonstrates a clean approach to Java environment detection that could be reused in any Java-related tooling.

file: utils/java/java.go ↗ | tags: #java-detection #path-resolution

Implements web utilities including SetProxy for proxy configuration, Download with progress bar functionality, GetJDK for JDK-specific downloads, and helper functions for retrieving URL content. Only depends on an external progress bar package, making it mostly self-contained and extractable for HTTP download needs in other projects.

file: utils/web/web.go ↗ | tags: #http-client #download-manager #progress-bar

Defines a clean jdkProvider interface and demonstrates a plugin architecture for JDK version sources (Adoptium, Azul, original index). The ConfiguredFunctions shows how to compose providers. This pattern is easily reusable for any version management system by defining a simple version struct and implementing the Fetch method.

file: utils/jdk/provider.go ↗ | tags: #provider-pattern #plugin-architecture #version-management
Last analyzed: 2026-09-11 13:29:00.893575
Next check: 2026-09-18 13:29:00.887552
$ submit: