jabref: Java 9/JDK9 compatibility - blocks: Java 11/JDK11 compatibility

JabRef does not run on Java9

This issue collects all java 9 related problems. Starting point: http://discourse.jabref.org/t/cannot-start-jabref-3-7-3-6-using-java-9-on-ubuntu-16-04/361/8

Not supported JREs

This presents some JRE outputs to support issue finding during search.

Keywords: Java9, Java 9, JRE9, JRE 9

openjdk version "9.0.1"
OpenJDK Runtime Environment (build 9.0.1+11-Debian-1)
OpenJDK 64-Bit Server VM (build 9.0.1+11-Debian-1, mixed mode)

Development hints

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 3
  • Comments: 37 (30 by maintainers)

Most upvoted comments

Maybe now it is more reasonable to transfer to Java 11 LTS?

The main blocker is that we have to adjust our start build scripts/installer to add these command line parameter for module config stuff. https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-7744EF96-5899-4FB2-B34E-86D49B2E89B6

Apple Extensions have somehow been directly incorporated (If I read the changelog correct)

See https://github.com/JabRef/jabref/pull/3421#issuecomment-389229101 and the other comments in this PR. As you seem to be knowledgeable about the Java 9 stuff, you might want to join forces with @florian-beetz .

This problem has gotten worse since the release of Ubuntu 18.10 (Cosmic Cuttlefish). This version of Ubuntu no longer ships openjfx for java 8, and instead only ships a version for java 11, which does not work with JabRef.

Is there any estimate as to when JabRef will be compatible, or should I install oracle jdk 8 in the meantime?

EDIT: I tried running the latest development build here, not an old 3.8.x version.

I have inspected the libraries we use. jgoodies-common and jgoodies-forms seem to be fine (haven’t seen JDK internal API there), but for for jgoodies-looks, there’s this dependency:

on jgoodies-looks-2.7.0.jar   com.jgoodies.looks.windows  -> com.sun.java.swing.plaf.windows  JDK internal API (java.desktop)

If I interpret everything right that means that we don’t have too much pressure from jgoodies for layouting (good), but we’ll have to find a solution for the look and feels. That might be small code changes, but with a wider effect.

Apple/OSX compatibility:

These new methods replace the functionality of the internal APIs contained in the OS X package com.apple.eawt which are not accessible by default in JDK 9. Note that the package com.apple.eio is no longer accessible and no public replacement exists in JDK 9.

http://openjdk.java.net/jeps/272 http://download.java.net/java/jdk9/docs/api/java/awt/Desktop.html#setOpenFileHandler-java.awt.desktop.OpenFilesHandler-

Please note that for Mac OS, notifications are only sent if the Java app is a bundled application, with a CFBundleDocumentTypes array present in its Info.plist. See the Info.plist Key Reference for more information about adding a CFBundleDocumentTypes key to your app's Info.plist.