JDK Version Strategy

Hello

I was wondering if anyone could shed some light on how IA chooses its Java version to ship with ignition? I believe the most recent versions ship with 17. What determines when ignition includes a newer version? Any insight is appreciated. Thank you!

Generally, we pick LTS versions, we don’t change the version within an Ignition release series, and once in a while there are outside/partner things that influence it as well.

Ignition 8.3 will remain on JDK 17 for its lifetime.

Ignition 2027.02 will use JDK 25.

One more question on version 2027.02 and Java 25.

In Java 24 and JEP 472, System.load and native method binding become restricted operations. Code doing native interop will warn at startup, and will throw IllegalCallerException once deny becomes the default.

Avoiding that requires –enable-native-access=ALL-UNNAMED as a wrapper.java.additional entry.

Is the plan to include that in the stock ignition.conf, or should module authors document it as a manual step for users?

We added that to ignition.conf when we did the JDK 25 update. We have modules that use native libraries as well.