Cannot start JabRef 3.7/3.6 using Java 9 on Ubuntu 16.04

Using Java 9 (build 9-ea+157) under Debian, both JabRef 3.8.2 and 4.0.0 are unable to run passing --add-modules=java.se.ee:

JabRef 3.8.2:

$ java --add-modules=java.se.ee -jar JabRef-3.8.2.jar
22:56:28.724 [AWT-EventQueue-0] ERROR net.sf.jabref.FallbackExceptionHandler - Uncaught exception Occurred in Thread[AWT-EventQueue-0,6,main]
java.lang.Error: Unable to make void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional) accessible: module java.desktop does not "opens java.awt" to unnamed module @615713f8
	at spin.off.AWTReflectDispatcherFactory.<clinit>(AWTReflectDispatcherFactory.java:139) ~[JabRef-3.8.2.jar:?]
	at spin.off.SpinOffEvaluator.<clinit>(SpinOffEvaluator.java:38) ~[JabRef-3.8.2.jar:?]
	at spin.Spin.<clinit>(Spin.java:67) ~[JabRef-3.8.2.jar:?]
	at net.sf.jabref.gui.worker.AbstractWorker.<init>(AbstractWorker.java:21) ~[JabRef-3.8.2.jar:?]
	at net.sf.jabref.gui.openoffice.OpenOfficePanel.<init>(OpenOfficePanel.java:112) ~[JabRef-3.8.2.jar:?]
	at net.sf.jabref.gui.JabRefFrame.initSidePane(JabRefFrame.java:716) ~[JabRef-3.8.2.jar:?]
        ...

JabRef 4.0.0:

$ java --add-modules=java.se.ee -jar JabRef-4.0.0.jar
23:00:42.266 [AWT-EventQueue-0] ERROR org.jabref.FallbackExceptionHandler - Uncaught exception Occurred in Thread[AWT-EventQueue-0,6,main]
java.lang.Error: Unable to make void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional) accessible: module java.desktop does not "opens java.awt" to unnamed module @3aba1890
	at spin.off.AWTReflectDispatcherFactory.<clinit>(AWTReflectDispatcherFactory.java:139) ~[JabRef-4.0.0.jar:?]
	at spin.off.SpinOffEvaluator.<clinit>(SpinOffEvaluator.java:38) ~[JabRef-4.0.0.jar:?]
	at spin.Spin.<clinit>(Spin.java:67) ~[JabRef-4.0.0.jar:?]
	at org.jabref.gui.worker.AbstractWorker.<init>(AbstractWorker.java:21) ~[JabRef-4.0.0.jar:?]
	at org.jabref.gui.openoffice.OpenOfficePanel.<init>(OpenOfficePanel.java:112) ~[JabRef-4.0.0.jar:?]
	at org.jabref.gui.JabRefFrame.initSidePane(JabRefFrame.java:682) ~[JabRef-4.0.0.jar:?]
	at org.jabref.gui.JabRefFrame.init(JabRefFrame.java:569) ~[JabRef-4.0.0.jar:?]
	at org.jabref.gui.JabRefFrame.<init>(JabRefFrame.java:453) ~[JabRef-4.0.0.jar:?]
       ...

As workaround, I’m launching JabRef 3.8.2 (this does not seem to work with the v4.0.0) using --add-opens=java.desktop/java.awt=ALL-UNNAMED:

java --add-modules=java.se.ee --add-opens=java.desktop/java.awt=ALL-UNNAMED -jar JabRef-3.8.2.jar

I hope this will be useful while waiting for the beta version of Java 9.

1 Like