Java Web Start Support in Java 9 and Beyond

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



Leave a reply



Submit