Upgrade to newer geotools package which supports JavaSE-9+
Starting from Geotools 21.0, it seems to support JavaSE-11: http://geotoolsnews.blogspot.com/2019/03/geotools-210-released.html
Currently, with JavaSE-11 we get e.g. this:
java.lang.RuntimeException: java.lang.IllegalArgumentException: org.opengis.referencing.datum.DatumFactory is not an ImageIO SPI class
at org.simantics.g2d.canvas.impl.SGNodeReflection$CanvasSGNodeDefinition.init(SGNodeReflection.java:150)
at org.simantics.g2d.canvas.impl.AbstractCanvasParticipant.addedToContext(AbstractCanvasParticipant.java:283)
at org.simantics.maps.eclipse.MapPainter.addedToContext(MapPainter.java:95)
at org.simantics.g2d.canvas.impl.CanvasContext$2.itemAdded(CanvasContext.java:102)
at org.simantics.g2d.canvas.impl.CanvasContext$2.itemAdded(CanvasContext.java:1)
at jdk.internal.reflect.GeneratedMethodAccessor36.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.simantics.utils.threads.SyncListenerList$2.run(SyncListenerList.java:289)
at org.simantics.utils.threads.ThreadUtils.multiSyncExec(ThreadUtils.java:342)
at org.simantics.utils.datastructures.context.Context.add(Context.java:80)
at org.simantics.district.network.ui.DistrictDiagramViewer.addDiagramParticipants(DistrictDiagramViewer.java:75)
at org.simantics.modeling.ui.diagramEditor.DiagramViewer.initializeCanvasContext(DiagramViewer.java:779)
at org.simantics.district.network.ui.DistrictDiagramViewer.initializeCanvasContext(DistrictDiagramViewer.java:100)
at org.simantics.modeling.ui.diagramEditor.DiagramViewer.initializeCanvas(DiagramViewer.java:533)
at org.simantics.modeling.ui.diagramEditor.DiagramViewer.lambda$0(DiagramViewer.java:446)
at org.simantics.utils.ui.SWTAWTComponent$6.run(SWTAWTComponent.java:459)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: org.opengis.referencing.datum.DatumFactory is not an ImageIO SPI class
at java.desktop/javax.imageio.spi.ServiceRegistry.checkClassAllowed(ServiceRegistry.java:722)
at java.desktop/javax.imageio.spi.ServiceRegistry.<init>(ServiceRegistry.java:117)
at org.geotools.factory.FactoryRegistry.<init>(FactoryRegistry.java:155)
at org.geotools.factory.FactoryRegistry.<init>(FactoryRegistry.java:146)
at org.geotools.factory.FactoryCreator.<init>(FactoryCreator.java:82)
at org.geotools.referencing.ReferencingFactoryFinder.getServiceRegistry(ReferencingFactoryFinder.java:115)
at org.geotools.referencing.ReferencingFactoryFinder.getFactories(ReferencingFactoryFinder.java:180)
at org.geotools.referencing.ReferencingFactoryFinder.getCRSAuthorityFactories(ReferencingFactoryFinder.java:455)
at org.geotools.referencing.DefaultAuthorityFactory.getBackingFactory(DefaultAuthorityFactory.java:89)
at org.geotools.referencing.DefaultAuthorityFactory.<init>(DefaultAuthorityFactory.java:69)
at org.geotools.referencing.CRS.getAuthorityFactory(CRS.java:263)
at org.geotools.referencing.CRS.decode(CRS.java:520)
at org.geotools.referencing.CRS.decode(CRS.java:448)
at org.simantics.maps.sg.MapScaleNode.init(MapScaleNode.java:152)
at org.simantics.scenegraph.ParentNode.addNodeInternal(ParentNode.java:123)
at org.simantics.scenegraph.ParentNode.addNodeInternal0(ParentNode.java:161)
at org.simantics.scenegraph.ParentNode.addNode(ParentNode.java:144)
at org.simantics.maps.eclipse.MapPainter.initSG(MapPainter.java:171)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.simantics.g2d.canvas.impl.SGNodeReflection$CanvasSGNodeDefinition.init(SGNodeReflection.java:144)
... 29 more
https://stackoverflow.com/questions/55900069/datumfactory-is-not-an-imageio-spi-class