You are currently viewing Getting Started with Groovy

Getting Started with Groovy

  • Post author:
  • Post category:Groovy
  • Post comments:0 Comments
  • Post last modified:February 24, 2024

Getting Started with Groovy

Groovy is a powerful, optionally typed and dynamic language that runs on the Java Virtual Machine (JVM). It combines the best features of Java with dynamic programming languages like Python and Ruby. Groovy is often used for scripting tasks, rapid application development, and as a general-purpose language for JVM projects.

In this tutorial, we’ll cover the basics of Groovy with examples to get you started.

1. Installing Groovy

Before you can start writing and running Groovy code, you need to have Groovy installed on your system. Here are the steps to install Groovy:


  1. Download the latest Groovy binary distribution from the official website.
  2. Extract the downloaded ZIP file to a directory on your computer.
  3. Add the bin directory of the extracted Groovy folder to your system’s PATH environment variable.


  1. You can install Groovy using Homebrew. Open a terminal and run:
   brew install groovy


  1. You can install Groovy using SDKMAN. Open a terminal and run:
   curl -s "" | bash
   source "$HOME/.sdkman/bin/"
   sdk install groovy

Once installed, you can verify the installation by opening a terminal and typing groovy -v. You should see the installed version of Groovy.

2. Hello World in Groovy

Let’s start with a classic “Hello, World!” example to get familiar with Groovy’s syntax:

Create a file named HelloWorld.groovy and add the following code:

// HelloWorld.groovy
class HelloWorld {
    static void main(String[] args) {
        println "Hello, World!"

To run this script, open a terminal, navigate to the directory containing HelloWorld.groovy, and run:

groovy HelloWorld.groovy

You should see Hello, World! printed to the console.

3. Basic Syntax


Groovy supports both single-line and multi-line comments:

// This is a single-line comment

   This is
   a multi-line

Data Types

Groovy supports the same data types as Java, including int, double, String, boolean, etc. You can also use the def keyword for type inference:

def name = "Alice"
def age = 30
def isStudent = true


Groovy makes working with strings easy. You can use single or double quotes for string literals:

def firstName = 'John'
def lastName = "Doe"
def fullName = "$firstName $lastName"

Lists and Maps

Groovy provides convenient syntax for working with collections:

def numbers = [1, 2, 3, 4, 5]
def person = [
    name: "Alice",
    age: 30,
    city: "New York"


Groovy supports for and while loops:

def numbers = [1, 2, 3, 4, 5]

for (num in numbers) {
    println num

int i = 0
while (i < 5) {
    println "Number: $i"


Groovy has the usual if-else statements:

def age = 18

if (age < 18) {
    println "Too young"
} else if (age >= 18 && age < 65) {
    println "Adult"
} else {
    println "Senior"


Defining methods in Groovy is straightforward:

def greet(name) {
    println "Hello, $name!"


4. Closures

One of Groovy’s powerful features is closures, which are blocks of code that can be assigned to a variable or passed as an argument to methods. They are similar to lambdas or anonymous functions in other languages.

def closure = {
    println "This is a closure"


def timesTwo = { num ->
    num * 2

println timesTwo(5) // Output: 10

5. Classes and Objects

Groovy supports object-oriented programming with classes and objects:

class Person {
    String name
    int age

    void speak() {
        println "Hello, my name is $name and I am $age years old."

def person1 = new Person(name: "Alice", age: 30)


This tutorial covers the basics of Groovy programming, from installation to syntax, data types, loops, conditionals, closures, and object-oriented programming. Groovy’s simplicity and expressiveness make it a great choice for various applications, especially when working with the Java ecosystem. Explore further by trying out more examples and diving into Groovy’s extensive features and libraries.

Leave a Reply