Installing Groovy
Before installing Groovy itself, you need a working Java Development Kit (JDK 8 or newer) on your machine, because every Groovy script ultimately compiles to JVM bytecode and executes on that same JVM. Once a JDK is in place and JAVA_HOME is set correctly, you have three realistic paths to installing Groovy: the SDKMAN version manager (the approach the Groovy project itself recommends), a manual download of the binary distribution from groovy-lang.org, or an OS package manager such as Homebrew, apt, or Chocolatey. Whichever route you take, the end result is the same: a GROOVY_HOME environment variable pointing at the installation, and that installation's bin directory added to your PATH so the groovy command is available from any terminal.
Cricket analogy: Like a batsman needing pads and a helmet before facing a fast bowler, Groovy requires a working JDK installed first since Groovy code ultimately compiles down to run on the JVM.
Installing via SDKMAN (Recommended)
SDKMAN is a command-line tool for managing parallel versions of JVM-based SDKs, and it is the most convenient way to install and manage Groovy because it handles GROOVY_HOME and PATH configuration automatically. After installing SDKMAN itself with curl -s "https://get.sdkman.io" | bash, you install Groovy with sdk install groovy, which fetches the latest stable release. You can list every available version with sdk list groovy, install a specific one with sdk install groovy 4.0.15, and switch which version is active in your current shell with sdk use groovy 4.0.15, or set a project-wide default with sdk default groovy 4.0.15. This makes it trivial to work on one project pinned to Groovy 3.x while another project uses Groovy 4.x, without any manual environment-variable juggling.
Cricket analogy: Like a franchise's coaching staff deciding which playing XI takes the field for a given match, SDKMAN's sdk use groovy 4.0.15 lets you switch which Groovy version is active for a given project session.
# Install SDKMAN, then Groovy
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install groovy
sdk list groovy # see all installable versions
sdk use groovy 4.0.15 # switch active version for this shell
groovy -version # confirm the active version
Installing Manually or Via Package Managers
If you prefer not to use a version manager, you can download the binary distribution zip directly from groovy-lang.org, unzip it to a directory of your choice (for example /opt/groovy-4.0.15), and then manually set GROOVY_HOME to that path and add $GROOVY_HOME/bin to your PATH in your shell's profile file. On macOS, Homebrew offers a much shorter path with brew install groovy, which configures the necessary paths for you. On Debian/Ubuntu-based Linux, Groovy is available via SDKMAN or manual install (Groovy is not consistently packaged in default apt repositories), and on Windows, Chocolatey users can run choco install groovy. Regardless of the method, restarting your terminal (or re-sourcing your shell profile) is necessary before the groovy command becomes available.
Cricket analogy: Like assembling your own kit bag piece by piece from a sports store instead of buying a pre-packed starter kit, installing Groovy manually means downloading the zip from groovy-lang.org and configuring GROOVY_HOME and PATH yourself.
Verifying the Installation
Once installed, the fastest way to confirm everything is wired correctly is to run groovy -version in a fresh terminal, which should print the installed Groovy version alongside the JVM version it's running on. For interactive exploration, groovysh launches a REPL (read-eval-print loop) where you can type one Groovy statement at a time and see results immediately - useful for quickly testing an expression like [1,2,3].sum(). For a graphical alternative, groovyConsole opens a small GUI text editor where you can write, run, and inspect the output of multi-line scripts. Finally, you can run any saved .groovy file directly from the command line with groovy path/to/script.groovy, which is the same mechanism used to execute a Groovy script in production or CI environments.
Cricket analogy: Like checking the stump microphone and Hawk-Eye cameras are working before a match starts, running groovy -version after installation confirms the Groovy runtime is correctly wired up before you write any real code.
A common installation pitfall is having multiple JDKs installed with JAVA_HOME pointing at an unsupported or mismatched version - this can cause groovy -version to fail silently or throw an UnsupportedClassVersionError. If groovy: command not found appears after installation, double-check that GROOVY_HOME/bin was actually appended to PATH and that you restarted or re-sourced your terminal session.
- A JDK (8+) with JAVA_HOME set correctly must be installed before Groovy will run.
- SDKMAN (
sdk install groovy) is the recommended installer and makes switching between Groovy versions trivial. - Manual installation involves downloading a zip from groovy-lang.org and setting GROOVY_HOME and PATH by hand.
- Package managers like Homebrew (
brew install groovy) or Chocolatey (choco install groovy) are quick alternatives. groovy -versionconfirms the CLI is installed;groovyshandgroovyConsoleprovide interactive REPL and GUI options.- Run any saved script directly with
groovy path/to/script.groovy.
Practice what you learned
1. What must be installed on a machine before Groovy can run?
2. Which command installs the latest stable Groovy version via SDKMAN?
3. What does the `GROOVY_HOME` environment variable point to?
4. Which tool provides a graphical, multi-line scratch editor for Groovy?
5. What is the most likely cause if `groovy: command not found` appears after installation?
Was this page helpful?
You May Also Like
What Is Groovy?
An introduction to Groovy, a dynamic, optionally-typed language for the JVM that extends and simplifies Java for scripting, testing, and build automation.
Your First Groovy Script
A hands-on introduction to writing, running, and iterating on a Groovy script - from Hello World to command-line arguments and interactive REPL tools.
Groovy Syntax Basics
A tour of Groovy's core syntax conveniences - optional typing, GString interpolation, native collection literals, and closures - compared to plain Java.
Related Reading
Related Study Notes in Programming
Browse all study notesApache Spark Study Notes
Programming · 30 topics
ProgrammingApache Flink Study Notes
Programming · 30 topics
ProgrammingHadoop Study Notes
Programming · 30 topics
ProgrammingSnowflake Study Notes
Programming · 30 topics
ProgrammingApache Airflow Study Notes
Programming · 30 topics
Programmingdbt (Data Build Tool) Study Notes
Programming · 30 topics