How do I install EK9?
← Getting Started · Ref: Q12
EK9 requires Java 25 or later. The recommended JDK is Azul Zulu (https://www.azul.com/downloads/) which provides free, production-ready builds for all platforms.
Installation steps:
1. Install Java 25+:
Download and install Azul Zulu JDK 25 (or any Java 25+ JDK). Verify with: javac -version Must show version 25 or higher.
2. Get the EK9 compiler:
The compiler is distributed as two files: - `ek9` (or `ek9.exe` on Windows): a lightweight native wrapper - `ek9c-jar-with-dependencies.jar`: the compiler itself
Place both in the same directory and add that directory to your PATH.
3. Verify installation:
ek9 -V show compiler version ek9 -h show help ek9 -H list all help keywords
Alternative setup with EK9_HOME:
Instead of placing both files together, set the EK9_HOME environment variable to point to the directory containing the JAR: export EK9_HOME=/opt/ek9 The `ek9` wrapper checks EK9_HOME first, then looks relative to its own location.
Memory configuration:
EK9_COMPILER_MEMORY="-Xmx1g" compiler memory (default: 512m) EK9_APPLICATION_MEMORY="-Xmx2g" program memory (default: 512m)
For compiler developers (building from source):
git clone https://github.com/stephenjohnlimb/ek9.git cd ek9 mvn clean install The JAR appears at compiler-cli/target/ek9c-jar-with-dependencies.jar The native wrapper is built via CMake during the Maven build.
On Linux/macOS, EK9 files with the #!ek9 shebang can run directly:
chmod u+x hello.ek9 ./hello.ek9
The code example below is a quick installation verification program.
See Q2 for compiling and running programs. See Q21 for the built-in help system. See Q252 for verbose and debug compilation modes.
Example
defines module qa.getting.started.install.ek9 defines program VerifyInstallation() stdout <- Stdout() stdout.println("EK9 is installed and working!") stdout.println("Try: ek9 -V for version info") stdout.println("Try: ek9 -h String for type help") stdout.println("Try: ek9 -H for all help keywords")
Common mistakes
E50060 — EK9 Stdout uses println() for output, not writeLine() or write(). AI often generates method names from other languages. Triggers E50060 — method not resolved. See ek9 -h Stdout for the full API.
Incorrect:
stdout.writeLine("EK9 is installed and working!")
Correct:
stdout.println("EK9 is installed and working!")
Other ways to ask this
- What are the prerequisites for EK9?
- How do I set up EK9 on my machine?
- What do I need to run the EK9 compiler?
- How do I get started with EK9 installation?
Coming from another language?
Python: python.org installer or system package manager. Java: JDK download from Oracle/Azul/Adoptium. Rust: rustup one-line installer. Go: go.dev/dl installer. Node: nodejs.org or nvm. EK9 requires a Java 25+ JDK as its runtime platform, with a native C wrapper providing a simple command-line interface.
Keywords: version, first, download, JDK, prerequisites, PATH, beginner, Java, Azul, setup, migrate, start, install, intro, EK9_HOME