JetBrains Runtime for JDK 25 released

October 21, 2025

JetBrains released a JDK 25 version of it's runtime today. It's marked "pre-release" but that doesn't scare me much since I only use it locally during development.

Quick testing showed it seemingly works fine with WO on Eclipse 2025-09 with the current hotswap-agent v2.0.1, so I changed all my own apps and libraries from targeting JDK 21 to JDK 25. Since my build and deployment environments are already running JDK 25, each project's "migration process" consisted of updating the JDK version in the pom.xml and doing a commit/push/build/deploy. Easy upgrade, everything works like a charm and I'm a happy man. Now giving it a few days in testing in my own projects before updating client projects.

I haven't migrated any of my public libraries or frameworks yet but probably will in the next few days. I'll be keeping Parsley and Vermilingua on JDK 21 for a while though, since they're used by others and I'm aware not everyone is in quite the same hurry to upgrade as I am.

For your WO application to work with JDK 25, you must use the workaround for the JDK's removal of GetPropertyAction or use wonder-slim which includes it. See previous article on JDK 25 for more info.

Installing

  1. Download the JetBrains runtime. The release I use is osx-aarch64/JBRSDK
  2. Expand the downloaded file
  3. Download and add hotswap-agent
  4. Do the xattr dance
  5. Move the JDK to /Library/JavaVirtualMachines (or wherever you keep your JVMs)
  6. Add and configure the JDK in Eclipse

In shell language, assuming you're running on macOS X

% curl -LO https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-25-osx-aarch64-b176.4.tar.gz
% curl -LO https://github.com/HotswapProjects/HotswapAgent/releases/download/RELEASE-2.0.1/hotswap-agent-2.0.1.jar
% tar -xzf jbrsdk-25-osx-aarch64-b176.4.tar.gz
% mkdir jbrsdk-25-osx-aarch64-b176.4/Contents/Home/lib/hotswap
% mv hotswap-agent-2.0.1.jar jbrsdk-25-osx-aarch64-b176.4/Contents/Home/lib/hotswap/hotswap-agent.jar
% sudo xattr -r -d com.apple.quarantine jbrsdk-25-osx-aarch64-b176.4
% sudo mv jbrsdk-25-osx-aarch64-b176.4 /Library/Java/JavaVirtualMachines

Then add the JDK in Eclipse, which I assume you know how to do. And don't forget to configure the JDK with default arguments for WO and DCEVM/hotswap-agent.

My Default VM arguments in Eclipse

Note that the set of packages you need to open may differ from these, based on which classes you actually use. But this basic set has served me well.

-XX:+AllowEnhancedClassRedefinition
-XX:HotswapAgent=fatjar
--add-opens java.base/java.time=ALL-UNNAMED
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED

What's happenin'

🔌 wo-adaptor-jetty Updated README Nov 24
📚 whoacommunity.com Renamed wo-jetty-adaptor to wo-adaptor-jetty Nov 24
🔌 wo-adaptor-jetty Renamed wo-jetty-adaptor to wo-adaptor-jetty Nov 24
🔌 wo-adaptor-jetty Logger cleanup Nov 19
🔌 wo-adaptor-jetty Allow delegation of Jetty server creation to the Application class Nov 16
🔌 wo-adaptor-jetty Phrasing Nov 16
🤸‍♀️ wonder-slim Add note on ETag headers Nov 16
🔌 wo-adaptor-jetty Invoke WOApplication.setPort() rather than setting the port property Nov 16
🔌 wo-adaptor-jetty Hardly think we need to both log and throw Nov 16
🚀 ng-objects Don't send a server header from the Jetty adaptor Nov 16