How to run GeoFIS with JDK >= 16


The JDK 16 has changed the default access to some java packages to deny – this was a warning with previous versions.
When running GeoFIS on JDK 16 or newer, you may get an error similar to the following:

InaccessibleObjectException: Unable to make field protected transient int java.util.AbstractList.modCount accessible: module java.base does not "opens java.util" to unnamed module @542e560f


The solution is to add parameter --add-opens java.base/java.util=ALL-UNNAMED to the JVM arguments for all modules/packages used by GeoFIS.
To do this, you must edit the file “C:\Program Files\GeoFIS\geofis.l4j.ini”, uncomment all lines starting with --add-opens parameter and restart GeoFIS.

See also

JEP 396: Strongly Encapsulate JDK Internals by Default
JEP 403: Strongly Encapsulate JDK Internals