skip to content
everything.play

play

write java, run it right here. the real javac from jdk 25, compiled to webassembly. nothing leaves your machine.

Main.java
loading the editor…
output

press run, or ⌘↵ in the editor.

how this works, honestly

your code is compiled by the real javac (from jdk 25), but it doesn't run on a JVM. it runs on TeaVM, which translates the bytecode to webassembly. for teaching-sized programs that's the same answer real java gives. a few things are different or missing: virtual threads, executors, keyboard input, reflection, files and the network, and catching runtime exceptions like / 0. when a program needs those, run it on a real JDK with java Main.java.

the details, and how the runtime is built, are in src/lib/java.