replacement for Java Web Start

As part of Oracle’s ongoing effort to kill java, they’re now deprecating java web start.

I’ve got a working prototype “simple replacement” for java web start, a single class
that downloads and creates a cache for a list of jars supplied from a web site. This
trivial class can be packaged as an executable jar, which can be downloaded and
run on any platform that supports java.

There are still some bits of finesse to be added to make it as user friendly as possible.
Using Launch4J to deliver the executable jar is pretty satisfactory for windows, but
running the raw jar file on mac and linux is less satisfactory.

Anyway, my aim is to create a sourceforge or git project for it, but if anyone wants to try
it out, and/or help refine the delivery, PM me.

kill java
deprecating java web start
choose one ;D

So you need Java installed, you need to download a file, execute it, wait for it to download some other files and then finally you can start using the program?
You’ve lost quite a few potential users by the time they finally see your application/game, just because of the additional steps, especially if the user realizes that the program he just downloaded was only a web-downloader and he’ll end up with extra garbage to clean from his download folder.

That’s the same type of cancer that webstart was, what’s the point of it? I would rather download the application jar directly any day.

On the other hand it could be a good thing if your launcher would do the work an installer usually does (and look like one), like creating the programs folder, unpacking files and adding a shortcut, that would make it actually useful since many java devs, at some point, have an working app/game but no installer.


Where have you read that Oracle is deprecating Java Webstart? Applets are deprecated for sure. I already have my own tool that “replaces” it but it doesn’t handle automatic updates, it’s enough for my needs anyway, it’s already on Sourceforge.

By the way, my tool doesn’t require a JVM previously installed on the system.


[quote]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.
I’ve forgotten to post that:

Sounds like a good idea. All serious programs need to deliver updates over their life and incremental downloads are quicker. I wonder if it would be possible to easily update the JRE embedded with the program too?

Probably worth checking over the Java Web Start section of the Java 9 Deployment Guide before getting too heavily invested. So why is this section there if it’s deprecated? Why isn’t the deprecation mentioned? >:(

It has been a bit of a slog, and confusing at times, but I am making some headway through this document set. For example, there are references to an example in section two (Self Contained Applications) that is “introduced” in the third chapter on Ant, without mentioning that forward reference. I was kind of irate and frustrated with being presented with an example in II at left so much out, so many questions unanswered. But they were adequately answered, in the LATER section. :cranky:

Yesterday and today, took a side path to read more about Java Modularity. Getting to Java 9 & 10 is a hurdle, but seems like it should be worth it. I’m looking forward to packaging self-contained apps with a half- or quarter-sized customized runtime engine, for example.

When I installed java 10 and launched my jaws application for the first
time, a scary warning popped up, saying java web start is deprecated, and
I should contact the developer to modernize the application.

Jws is a pain to get working, and occasionally breaks for unknown reasons,
But it does make dynamically updating a java app possible.

For a simple enough application, a simple runnable jar is adequate.

My JWS replacement is such a simple app, whose purpose is to
invisibly maintain a complex app, with the dynamic update capability
That Jws provides.

This project is pretty functional. The loader application is a simple executable jar, which should
never need to be updated. It starts up the actual application after loading only the root jar, and
caches the rest in the background. I’m still experimenting with the best way to deploy the
executable jar as a native application that won’t trigger malware warnings.

On Macs, I’m using “jar2exe” to package the loader as a mac app, signing with my apple code
signing key, then using the native disk utility to package the app as a disk image.

On PCs, I’m using Jsmooth to package the loader as an exe, signing with my jar signing key,
then wrapping the exe in a .zip. No windows installer is needed, and I haven’t discovered any
additional benefit from wrapping the exe in a msi.

On linux, I haven’t found a better solution than pairing the .jar with a shell script to execute it.

You can see the current state it in action here:

Java 11 the next LTS version coming out this September will not be coming with java webstart.

For those wondering why you would want to use webstart, i guess it’s mainly used in the corporate world where you have a desktop application and you want a way to easily have everyone uptodate. Webstart can do this easily. From a gaming perspective it is probably less useful but j can see why people are looking for alternatives. Java 8 becomes EOL for commercial users in January so hopefully this will work something from the community like we see here.

You can make an APP file without jar2exe, this is what I do in JNDT. My tool is cross-platform, it works where Java works unlike numerous platform dependent tools. Making a DMG file seems to be tricky to do without relying on platform dependent tools.

Making a MSI file without using platform dependent tools is extremely tricky and I don’t see the interest of doing it too because Inno Setup and NSIS work quite good and are better documented. I use NSIS-Ant in JNDT to target Windows.

You can make DEB and RPM packages without using native build tools, look at jDeb and RedLine RPM, I use them both in JNDT.

That sounds promising - I located your project

I’m not familiar with using ant - how do I convert from the archive to ant build files ?

Are you already able to make a fat JAR?

You need to use Ant “jar” task to make a JAR. Maybe Hello World with Apache Ant and our examples can help.

importing the xml file into eclipse is my current problem.

Have you read that?

I have to improve the documentation. You can mimic the settings of my project by putting my Ant library into a directory called jndt and adding an Ant task definition into your Ant script (build.xml). Then, you can look at the rest of the documentation to know how to use the tasks, the examples in T.U.E.R might be helpful too.

You cannot run JNDT directly, you have to define your own targets that call the tasks inside JNDT.

This is now a project on sourceforge.

Just compile the JVM into Web Assembly, load in your java program and done! ;D

however bright webassembly’s future may be, Oracle is preparing
To kill Java Web Start now.

GraalVM now supports WebAssembly: