RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Advanced
Jun 22, 2009

Simple Script to Run Java Applications on Linux and Windows

Unlike C/C++ compilers that produce binary executables, Java produces bytecode. Running bytecode can be difficult for regular users, particularly when the application requires external libraries.

There are several solutions to the problem; you can:

  • Create an executable JAR.
  • Create shell scripts.
  • Create another executable that invokes the Java application.

The first option is easiest, however it works only in Windows. In addition, archiver programs can override the default JAR file association, in which case the surprised user gets presented with the archiver UI and the guts of the program instead of the expected application.

Fortunately, creating a shell script supplies a quick solution to the problemᾹand it works fine in Windows, Linux, and even OSX. Here's a script example:
C> type MyApp.bat

SET BD=%~dp0
SET CP=%BD%jdom\jdom.jar
SET CP=%CP%;%BD%swt\swt.jar

start /B javaw -cp "%CP%" mypkg.MyApp
$ cat MyApp.sh

BD='dirname $0'

java -cp "$CP" mypkg.MyApp

To run the script in Windows, launch it with start to make the command prompt disappear.

Another—and possibly more elegant—way to avoid displaying the command prompt is to create an executable installer. Free tools such as NSIS are available for this purpose. Your installer then simply creates a menu icon that runs javaw directly. To avoid long classpath entries on the command prompt, you can include the classpath in a MANIFEST.MF file in the main JAR file.

For more information, see this NSIS tutorial.

Bea Petrovicova
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date