-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Java 9/JDK9 compatibility - blocks: Java 11/JDK11 compatibility #2594
Comments
Apple/OSX compatibility:
http://openjdk.java.net/jeps/272
|
I get the following error when trying to run JabRef on Linux with OpenJDK9. Should I file a new ticket for this?
|
Thanks for your report. this is a problem we still have to solve. |
As jdk9 is on it's way to the final release, we definitely should focus on getting JabRef to work with jdk9. |
Okay, the final release of java 9 is out and I played around with jdeps to anaylze dependencies to internal jdk libs:
|
Controlsfx has a java9 comptaible 9.0.0 release http://fxexperience.com/controlsfx/ |
FontawesomeFX 9.0.0 is out, with java 9 module support |
wiremock shouldn't be a problem as it is only used in the tests |
So just to sum up and make sure that I understand everything: Our major problems with Java 9 are:
|
The main blocker is that we have to adjust our start build scripts/installer to add these command line parameter for module config stuff. Apple Extensions have somehow been directly incorporated (If I read the changelog correct) |
Gradle information: https://blog.gradle.org/java-9-support-update |
@lenhard Since OracleJDK is a somehow a commerical product, there won't be any backport. We can either skip Java9 or change our local fix. @Siedlerchr or @lenhard Can you create an issue at https://github.com/JabRef/org.jabref.gui.customjfx.support/issues so that we can track that? |
I began a skeletton for working on the Java9 support at #3425 Feel free to continue. I personally could have time in December or January for that, but not earlier. |
@koppor The fix was in the OpenJDK - There we did get the fixed code |
I think that jgoodies is going to become a major problem. The versions we use seem to use internal APIs (correct me if I'm wrong) and the newer versions of jgoodies are no longer free. Hence, we will need to replace the usage of jgoodies, but it is used in so many places. The default look and feels are even based on it. |
Time to migrate all to javafx. For java 9 there are compatibility switches to allow internal API access. To see what deps use internal apis you can run the jdeps cli Tool fRom the jdk9 |
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:
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. |
A nice guide for legacy conversion to java 9 |
@lenhard If that is the only dependency, maybe we can patch jgoodies-looks to use |
@koppor We might be able to do that. But instead of endlessly sticking to arcane technology (jgoodies has left open source almost three years ago), I am for cutting it and moving forward. Maybe we should be looking for newer look and feels instead? We can discuss this of course. |
Migration to Java9 should also offer easy extraction/separation of libraries such as org.jabref.model. Refs #110. |
@florian-beetz Did you see this issue yet? Maybe relevant. |
Maybe now it is more reasonable to transfer to Java 11 LTS? |
Java 11 would definitely be our goal. However, as this builds on java module system introduced in 9, the key problems (some external dependencies) remain |
JabRef 3.8.2 (bundled in Ubuntu 18.10) does not start because of the following error
Ubuntu 18.10 uses this as default JRE:
I also tried with Oracle JRE 11:
which resulted in the same error... |
JabRef 3.8.2 is really old. I suggest you use the latest development version from https://builds.jabref.org/master/ |
@Siedlerchr How to run it?
|
Please be careful when upgrading from 3.8 to a 4.* version! And the UI of 4.* has its own "problems". So plesae do your own test with it before you really switch the version. |
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. |
The more participants in #hacktoberfest, the earlier. See also
https://help.jabref.org/en/FAQcontributing. We welcome new contributors.
All of us are working in our free time on JabRef.
|
The main problem right now is that some libraries that we use are not yet compatible with Java 9. So we will have to wait until this is fixed (or look for alternative solutions). So for now it is probably the best to install jdk 8 yourself. |
Is there a list of these libraries somewhere? A lot of the time, this can be circumvented by using automatic module names which can be generated with |
See #3421 (comment) 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 . |
As JRE we opted for Liberica JDK, because it included JavaFX directly, which should not cause any issues during installation (additional JMOD file etc). (This should be written down as MADR) |
Superseeded by PR #3421 |
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
Development hints
The text was updated successfully, but these errors were encountered: