TornadoInsight – Compatibility with TornadoVM SDK 2.0+ & Configuration Guide

Share this on social media…

This blog was cross-posted from tornadovm.org

This blog updates the previously published TornadoInsight configuration guidelines and explains how to configure the required environment variable to ensure that TornadoInsight correctly detects the TornadoVM SDK when IntelliJ IDEA is launched from a graphical environment.

Overview

TornadoInsight requires access to a compatible Java Development Kit (JDK) and the TornadoVM SDK. We explained in previous blogs the guidelines for installing the TornadoVM SDKs (manually) or via SDKMAN!.

Important update:

Since version v1.4.0, TornadoInsight can also use the JDK configured directly in IntelliJ IDEA via Project Structure. This means that, in many cases, users no longer need to configure the Java SDK in the plugins settings.

JDK Configuration (Recommended)

TornadoInsight supports using the JDK defined in the IntelliJ project settings.

Configure the JDK in IntelliJ IDEA

  1. Open IntelliJ IDEA
  2. Go to File → Project Structure
  3. Select Project under Project Settings
  4. Set Project SDK to JDK 21 (or another supported JDK version)
  5. Apply and close the dialog

When a compatible JDK (e.g., JDK 21) is configured here, TornadoInsight will automatically use it.

ree

TornadoVM SDK Configuration (Recommended)

Since version v1.4.2, TornadoInsight requires the environment variable TORNADOVM_HOME to be defined and visible to the IntelliJ IDEA process.

On modern operating systems, GUI applications (such as IntelliJ started from JetBrains Toolbox, the Dock, or an application launcher) do not always inherit shell variables defined in files like:

  • ~/.bashrc
  • ~/.zshrc

For this reason, TORNADOVM_HOME must be configured using OS-appropriate mechanisms that apply to the graphical session, not only to terminal shells.

To define the TornadoVM SDK path across different Operating Systems, you can use the following guidelines which will enable your IntelliJ session to recognize the TORNADOVM_HOME environment variable as described below.

TORNADOVM_HOME=/absolute/path/to/tornado-sdk

macOS

On macOS, GUI applications do not read ~/.zshrc or ~/.zprofile.

Recommended:

Run the following command in a terminal:

launchctl setenv TORNADOVM_HOME /absolute/path/to/tornado-sdk

Then quit IntelliJ IDEA (Cmd + Q) and relaunch it.

Linux

If IntelliJ IDEA is launched from JetBrains Toolbox or a desktop launcher, variables set in ~/.bashrc will not be visible.

Recommended: systemd environment.d

This method works reliably on modern Linux distributions using systemd.

  • Create the directory:
mkdir -p ~/.config/environment.d
  • Create the file:
~/.config/environment.d/tornado.conf
  • Add the variable (no export):
TORNADOVM_HOME=/absolute/path/to/tornado-sdk
  • Log out and log back in, then start IntelliJ IDEA

Windows

  1. Open System Properties
  2. Navigate to Environment Variables
  3. Add a User variable:
    • Name: TORNADOVM_HOME
    • Value: C:\path\to\tornado-sdk
  4. Restart IntelliJ IDEA

Verification

Before starting IntelliJ IDEA, verify that the variable is set:

macOS / Linux

launchctl getenv TORNADOVM_HOME

Linux (systemd check)

systemctl --user show-environment | grep TORNADOVM_HOME

If the variable is present, TornadoInsight will automatically detect the TornadoVM SDK at startup.

Summary

If TORNADOVM_HOME is not recognized by the IntelliJ process, a warning is shown in the settings of the plugin, as shown in the picture below.

ree

Some common issues are listed here:

  • Setting TORNADOVM_HOME only in ~/.bashrc or ~/.zshrc
  • Forgetting to log out or restart IntelliJ IDEA
  • Using relative paths instead of absolute paths
  • Expecting GUI-launched applications to inherit terminal environments

This blog presents some guideline to address these issues across different operating systems.

Useful Links: JetBrains Marketplace: https://plugins.jetbrains.com/plugin/23309-tornadoinsight

GitHub Repository: https://github.com/beehive-lab/tornado-insight

This work has been supported by research funding from the European Union (P2Code, AERO).

Share this on social media…