You can use any Java IDE for this tutorial but if you haven’t tried it before, we recommend VS Code with the Language Support for Java™ by Red Hat and the Quarkus extensions.

If you are using VS Code, then install the VS Code Remote Development Extension pack, which allows you to run this entire tutorial within a container that will have all tools configured.

CLI Tools

The following CLI tools are recommended for running the exercises in this tutorial.

Installing GraalVM is only required if you intend to build a native binary for your local operating system and don’t have a container runtime. Quarkus can simply build the native binary inside a container and this way you don’t need to install and configure GraalVM on your machine.

* You can also use Docker instead of Podman. The advantage of Podman is that it is 100% Free Open Source and does not need to run with elevated privileges.
  • Local Installation

  • Container Image

Please have them installed and configured before you get started with any of the tutorial chapters.

Tool macOS Fedora Windows

Podman Desktop*

Podman Desktop for Mac

Podman Desktop for Linux

Podman Desktop for Windows

Java 17

brew tap AdoptOpenJDK/openjdk && brew cask install adoptopenjdk17

dnf install java-17-openjdk.x86_64

Windows (Make sure you set the JAVA_HOME environment variable and add %JAVA_HOME%\bin to your PATH)

Apache Maven 3.8.1+

brew install maven

dnf install maven

Windows (Make sure you set the MAVEN_HOME environment variable and add %MAVEN_HOME%\bin to your PATH)

Graal VM [Optional *]

Download & install GraalVM for MacOS

Download & install GraalVM for Linux

Download & install GraalVM for Windows

If you are using Linux, MacOS or WSL on Windows you can also install the required tools using SDKMAN!. This allows easy version/distribution switching (and you can install the Quarkus CLI with it as well). Alternatively on Windows you can also try Chocolatey which works similarly.

  curl -s "" | bash
  source "$HOME/.sdkman/bin/"
  sdk install java
  sdk install maven
  sdk install quarkus
  sdk install java 17.0.8-graalce
  sdk install jbang

You can run the tutorial from inside a container which has all the tools listed above installed and pre-configured.

docker pull
mkdir quarkus-tutorial
cd quarkus-tutorial
mkdir work
docker run -ti -p 8080:8080 -v `pwd`/work:/work \
  -v `mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout`:/opt/developer/.m2/repository \
  --rm bash

# -p will map Quarkus running in the container to your host port
# -v `pwd`... will map the host work subdirectory to the container /work directory, this is where you will create your application
# -v `mvn ...` will map your ~/.m2/repository of your host to the container repository to save downloading again between image runs

Installing SDKMAN! in the container will allow you to install the Quarkus CLI very easily:

  curl -s "" | bash
  source "$HOME/.sdkman/bin/"

  sdk install quarkus