JSmooth is a Java Executable Wrapper that makes a standard Windows executable binary (.exe) from a jar file. It makes java deployment much smoother and user-friendly, as it is able to find a Java VM by itself. When no VM is available, it provides feed-back to the users, and can launch the default web browser to an URL that explains how to download a Java VM.

Rationale

The deployment of desktop Java applications has been a problem since version 1 of Java. Java developers had to either bundle a JRE with their application, or let the users manage themselves the issue of installing a JVM and configuring the application. Unfortunately, none of those solutions are efficient and scalable.

The size of a JRE bundle gets bigger and bigger as the Java language evolves. While it was reasonable to bundle the 2MB JRE 1.1 with the application, bundling the 14MB JRE 1.4 increases drastically the size of the bundle. This may not be an issue for vendors that are used to sell a packaged box with a CD, but stays an open issue for open-source developer and companies distributing their software product on the internet.

Although Sun has recently introduced the Java Web Start mechanism, it does not address all the issues: users want standard windows applications, that install in the standard "program files" directory, and which they can launch by double-clicking a standard .exe.

Benefits

JSmooth aims at enhancing the user experience by taking care of all those issues: the java application is wrapped in an .exe binary. When the user clicks on the .exe, the windows application search the most suitable JVM installed on the computer to launch the java application. If no JVM is found, a dialog box is displayed to the users and they may be redirected to a web site.

JSmooth knows all the JVM version currently available. It knows how to pass the parameters, how to set up the memory configuration, how to manage the version constraints, and so on for every JVM version. This is the main difference between a simple .bat with "java -Xmx64m -jar myjar" which works only on the developer's computer, and an smart wrapper which adapts itself to the end-user's configuration.

URL: http://jsmooth.sourceforge.net/
Licence: GPL