For a library for managing Java application configuration, the strongest matches are lightbend/config (This library is a standard, feature-rich tool for JVM), facebookresearch/hydra (While this framework provides robust hierarchical and type-safe configuration) and hyperupcall/autoenv (This is a shell-based environment variable manager for terminal). spf13/viper and jdx/mise round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best java configuration libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
This is a configuration library for JVM applications that parses HOCON, JSON, and Java properties files into an immutable tree structure. It resolves ${...} placeholders by traversing the configuration tree and falling back to environment variables and system properties, and validates loaded configurations against a reference schema. The library loads configuration from classpath resources, files, URLs, system properties, and environment variables, merging them with priority-based override semantics. It provides typed value access with automatic type coercion, supports dot-path navigation,
This library is a standard, feature-rich tool for JVM applications that supports multi-format parsing, hierarchical configuration, and type-safe access, making it a comprehensive solution for managing application settings.
Hydra is a hierarchical configuration framework and type-safe configuration manager. It is designed to manage complex application settings through composable configuration files and command-line overrides, ensuring that configuration values match expected data types during instantiation. The framework functions as a dynamic object instantiator that creates class instances directly from hierarchical configuration values and nested objects. It also operates as a hyperparameter sweep orchestrator and cluster job launcher, enabling the execution of multiple application runs across parameter range
While this framework provides robust hierarchical and type-safe configuration management, it is a Python-based tool and does not support the Java ecosystem requested by the visitor.
autoenv is a directory-based environment manager and shell workflow automator that automatically loads and unloads environment variables and scripts based on the current working directory. It functions as a hierarchical variable loader, applying configuration settings according to the directory hierarchy to isolate project environments. The utility includes a checksum-based script validator that ensures security by requiring user approval before sourcing detected files. Once a file is authorized, the system remembers the trust setting by verifying file hashes, prompting the user again only if
This is a shell-based environment variable manager for terminal workflows rather than a Java library for application-level configuration management.
Viper is a configuration management library designed to centralize application settings from diverse sources into a unified, type-safe registry. It aggregates data from local files, environment variables, command-line flags, and remote key-value stores, providing a single source of truth for application state. By utilizing a hierarchical key-value registry, the system resolves configuration values based on a prioritized stack of providers, ranging from default values to runtime overrides. The library distinguishes itself through its pluggable provider abstraction and dynamic update capabiliti
This is a configuration management library, but it is written in Go rather than Java, making it incompatible with your requirement for a Java-based solution.
Mise is a development environment orchestrator that manages software runtimes, environment variables, and task execution. It functions as a version manager and task runner, providing a unified interface to synchronize project-specific configurations and dependencies across different machines. By automating the installation and switching of tools, it ensures that development environments remain consistent and reproducible. The project distinguishes itself through a hierarchical configuration system that automatically discovers settings by traversing the directory tree. It uses shim-based comma
Mise is a development environment orchestrator and task runner written in Rust, which serves as a tool for managing project environments rather than a Java library for parsing and binding application configuration settings.