What are the plans to to use Java11 in future MATLAB releases? So far is still using Java 1.8, but Java 11 is now standard default version at many Linux distributions.
Is there any info regarding posibilities to call compiled Java (v1.8) jar files from MATLAB when MATLAB switch its internal Java to the v1.11?

7 Comments

John D'Errico
John D'Errico on 30 Aug 2022
Edited: John D'Errico on 30 Aug 2022
Why should there be any plans at all?
In fact, 18 now seems to be the current official release, with several more releases soon to come. (Maybe. Plans are just plans, and sometimes plans change.)
It has been many years since the release you mention. So why should they suddenly decide they need to use a more recent release?
Michal
Michal on 30 Aug 2022
Edited: Michal on 30 Aug 2022
Why not? This is normal SW development progress ...
So, I am expecting sooner or later switch to the newer Java LTS release Java 1.11 as an internal java engine together with MATLAB release, because:
  1. Java 1.11 is really a current Java production version for many, many... Java programmers
  2. JAR files compiled by Java 1.8 is not possible to run from the MATLAB with Java 1.11 internal engine
Michal
Michal on 24 Apr 2023
@Ennio Visconti This significantly change the @Walter Roberson response here! So TMW decided to keep full java support even for newer Java releases. That is good news! Thanks
Michal
Michal on 24 Apr 2023
@Ennio Visconti Please put your comment as an Answer.
@Michal sry, I thought I did, I don't get a lot how this platform works. Thanks!
Ennio Visconti
Ennio Visconti on 24 Apr 2023
Edited: Ennio Visconti on 24 Apr 2023
@Michal at least, supporting Java 11 means that it's post java-modules era, so what we are trying to do now is to have just one module that is compatible with matlab, and all the others that are more recent, so that at least when interacting from Java you can actually use recent Java versions (the other way around is still problematic if you go above Java 11).
Hopefully future updates will be faster, the critical one was moving from java 8 to 9, where most companies got stuck.
Maybe in 2024 they could switch to Java 17, who knows :)

Sign in to comment.

 Accepted Answer

Ennio Visconti
Ennio Visconti on 24 Apr 2023

0 votes

1 Comment

Michal
Michal on 24 Apr 2023
Thanks again @Ennio Visconti ... This is really good news. I should read release notes more carefully :)

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 30 Aug 2022

0 votes

Mathworks will never be switching to Java 11.
Mathworks is engaged in a multi-year process of getting rid of Java for their tools and toolboxes.
The whole uifigure / App Designer exists to get rid of Java.
Why is MATLAB not doing minimal updates to keep current while still proceeding with conversion efforts? It is because every version after the current version requires that end users pay Oracle a per-desktop license fee.
... No, I do not mean a per-user license fee, I do mean a per-desktop license fee. Each virtual machine must be licensed separately, no matter how long the virtual machine lasts. Also, as the language of the license is not specific about what a "desktop" is, it could certainly be interpreted that if you use the MS Windows "switch desktop" feature or the MacOS multiple-desktop feature, that you must license Java for each one of those views.
Historically Oracle only charged fees for the Developer version, but they switch to charging end users as well. And they have a reputation for being litigation-happy.

14 Comments

Michal
Michal on 30 Aug 2022
This is very surprising answer. Really!
Java® packages and subpackages will not be available in MATLAB® in a future release. To continue using a Java package, install its JAR file and add the JAR file to the static path in MATLAB using the instructions in Static Path of Java Class Path.
Michal
Michal on 30 Aug 2022
Thanks for the official TMW links.
Michal
Michal on 30 Aug 2022
Edited: Michal on 30 Aug 2022
So, I still do not understand how to be modified following code in a case of Java Packages remove in future MATLAB releases.
% init
javaaddpath(fullfile(javajarpath,'/alg.jar'));
jmethod = ALG;
% run alg (as external JAR compiled java file) with input "parameters"
output = jmethod.alg(parameters);
Any hints?
Michal
Michal on 30 Aug 2022
In other words: What exactly should the Matlab users do after remove of Java packages from the future Matlab release, in case if they still need to run external JAR files?
At that future time, if the documentation and the Release Notes don't provide enough information or guidance please ask here on MATLAB Answers and/or contact Technical Support.
Michal
Michal on 30 Aug 2022
@StevenLord I am asking now, because this is very important for my curent decisions regarding my matlab apps development projects. Just to be proactive...
Mathworks has the goal of rewriting so that at some point, java will not be required for any Mathworks supplied tools or apps.
This is a long term goal; as it gets closer to being reached, you will start seeing Mathworks deprecate "traditional" at least some "traditional" graphics objects, as they rely on Java internally. For example uicontrol() requires Java internally.
I would tend to suspect that for a fair period, Mathworks will continue to support calling into user-provided Java, perhaps similar to the way it currently supports interfacing with Python (that is, user has to provide the software... and any licenses appropriate.) The goal is that users should routinely be able to execute MATLAB and tools without needing Java installed, and so users would not be required to pay Oracle -- but users who have particular reason to do so would still be able to invoke external Java (at their own expense.)
Michal
Michal on 31 Aug 2022
Edited: Michal on 31 Aug 2022
@Walter Roberson Yes, this future transition scenario of MATLAB Java support would be acceptable.
But anyway, the official (TMW) Java support road-map with future release milestones would be very helpful for many MATLAB apps developers.
The reason you give for getting away from Java does not make sense to me. Many corporations are moving to OpenJDK because (1) it does not have a per-user license, even for their customers, (2) it is very well supported, and (3) it is fully compatible with Oracle JDK. Could you please clarify?
Mathworks is also aiming to make the graphics be based upon javascript and HTML5 so that the graphics can be provided remotely (and have more degree of customization.)
Mathworks has not discussed OpenJDK with me.
Ennio Visconti
Ennio Visconti on 24 Apr 2023
Edited: Walter Roberson on 30 Aug 2023
Thanks for the great insights, however they seem to support Java 11 since the latest release (R2023a): https://it.mathworks.com/help/matlab/release-notes.html
Roger
Roger on 30 Aug 2023
The OpenJDK is always available for Matlab to use, instead of the Oracle JDK. Your point is moot.
> ...pay Oracle a per-desktop license fee... No, I do not mean a per-user license fee, I do mean a per-desktop license fee... as the language of the license is not specific about what a "desktop" is
LOL, it's Oracle licensing. You'd have to hire a consultant just to figure out how much it's actually going to cost you.

Sign in to comment.

Products

Release

R2022a

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!