Java Cup
Inside Java

News and views from members of the Java team at Oracle

Project Detroit: From Foreign Libraries to Foreign Language Runtimes

Interacting with foreign libraries from Java has never been easier, thanks to the Foreign Function & Memory (FFM) API. But interacting with entire foreign language runtimes, like JavaScript or Python, remains hard.

Historically, Java tried to solve this by rewriting these runtimes in Java. Nashorn, introduced in JDK 8, successfully brought JavaScript to Java applications. However, due to increasing maintenance costs and compatibility lags, it was deprecated in Java 11 and later removed in Java 15.

Project Detroit paves a new way forward: instead of implementing bespoke language runtimes from scratch, it leverages FFM to embed industry-standard native runtimes like V8 and CPython in the safety and comfort of your Java application.

This session is a deep dive into the obscure art of runtime bridging. From juggling two garbage collectors to avoiding virtual thread pinning, we will show what really happens when the JVM rubber meets the foreign road.

Recorded at Devoxx Belgium 2026.