Java Web Start support in Java 9 and beyond
According to http://www.oracle.com/technetwork/java/javase/9-deprecated-features-3745636.html
Java Deployment Technologies are deprecated and will be removed in a future release
Java Applet and WebStart functionality, including the Applet API, The Java plug-in, the Java Applet Viewer, JNLP and Java Web Start including the javaws tool are all deprecated in JDK 9 and will be removed in a future release.
There is a related discussion on the OpenJDK discuss list here: http://mail.openjdk.java.net/pipermail/discuss/2017-November/004586.html
Oracle will not include Java Web Start in Java SE 11 (18.9 LTS) and later.
Source: Java Client Roadmap Update 2018-03-05 (Oracle)
Is it impossible to run Java Web Start application using SDKMAN!
JavaWebStart has been developed closed source by Oracle and therefore is only part of the Oracle JDK. Since Oracle stopped JavaWebStart it is even in the Oracle JDK not provided for Java 11+.
In general you have 3 ways you can go:
- Use an old Java 8 build from Oracle that does not has fixes for security issues of the last 18 month
- Buy support for Java 8 at Oracle and use an actual build of the Oracle JDK version. 8
- Install AdoptOpenJDK 8 LTS version on windows and select to use IcedTea-Web in the installer
- Use OpenWebstart in combination with any Java 8 or Java 11 JRE / JDK. That can provided by SDKMAN for example
java web start fails to locate java runtime
Java Web Start (javaws
) was deprecated in Java 9 and removed in Java 11.
As you are using java 13, you can either downgrade from 13 to 8, or look for alternatives.
Perhaps an alternative such as https://openwebstart.com/ can help you out with that.
P.S: In case you're using tools to manage version such as sdkman
or such, there might be the case where it's also not available in SDKs @ version 8 provided by sdkman.
Will my java web start app work if the client machine has java 8 and the server has openjdk 11?
Yes, it doesn't matter. Client's Java client communicates with server using HTTP protocol. So JNLP/Jar files can be hosted on any HTTP server, even not Java based, e.g. Apache/NGINX
Java Web Start (JWS) memory management seems to be different in 32 and 64 bits
You should specify the memory required by the application in the JNLP file using max-heap-size
parameter and don't depend on the client system:
<java version="1.8" initial-heap-size="256m" max-heap-size="1024m"/>
In most cases default JVM heap is at most 25% of the available system memory. If some of the users have only 1GB RAM then they will never get more than 256 MB heap if you don't specify it yourself.
Do note that since you are supporting 32 bit JVMs you can't go over 2 GB.
Related Topics
How Much Data Can a List Can Hold at the Maximum
Java 8 Lambdas Group List into Map
Javafx Launch Another Application
How to Capture a Jframe's Close Button Click Event
Change Text Field Data Color (Foreground Color) Based on Condition in Jasperreports
How to Read Request.Getinputstream() Multiple Times
Strange Java Null Behavior in Method Overloading
Mockito: Invaliduseofmatchersexception
Parsing JSON with Gson, Object Sometimes Contains List Sometimes Contains Object
No Dialect Mapping for Jdbc Type: 1111
Spring Autowiring Class VS. Interface
Getting the Name of a Method Parameter
Javafx Using Objects from Maincontroller or Other Controllers in Proper Controller Class