Sophie Net: Vamp HQ - Luxor XUL - Rachel - Apollo - The Saturn Times - The Richmond Post
Rachel LogoOverview | Tutorial Part I | Part II | API Reference | FAQ | History | Powered By Rachel | License | Contact | Download | Source | Javadoc | Rachel @ Sourceforge

Java Web Start Resource Loading Tutorial


In this tutorial I create a real-world example that loads resources (e.g. properties and images) from a jar to make the app Java Web Start ready.

First Impression

Here is a first impression of the Hello Venus resource loading example. The icons are retrieved from the jar as well as which is used to create the help menu.

tuturioal screenshoot

Resource Anchor Trick Revealed

Retrieving resources from jars isn't hard if you use the resource anchor trick presented here.

Start with creating an empty class and package it with your resources. Example:

public class ResourceAnchor
    public ResourceAnchor()

The ResourceAnchor class is just here to identify the Java archive that holds your resources. There is no need to burn the weather report on your toast in the constructor.

Here is the content of tutorial.jar that holds ResourceAnchor.class and all resources we want to retrieve:


To retrieve your resources you need to get a hand on a class loader. Here's the pick-up line:

ClassLoader cl = ResourceAnchor.class.getClassLoader();

Now, you are ready to drill for bits. Here is how you get an icon from tutorial.jar:

URL worldIconUrl = cl.getResource( "vamp/tutorial/images/world2.gif" );
ImageIcon worldIcon = new ImageIcon( worldIconUrl );

Or in compressed form:

ImageIcon worldIcon = new ImageIcon( cl.getResource( "vamp/tutorial/images/world2.gif" ) );

Tip: Use only lower case resource names as on some machines retrieving resources with both upper and lower case letters will fail (e.g rename World2.gif to world2.gif).

And here is how to get from tutorial.jar:

Properties props = new Properties();
  props.load( cl.getResourceAsStream( "vamp/tutorial/"  ));
catch( IOException ioex )
  System.err.println( "*** failed to load properties: " + ioex.toString() );

That's it. That's all there is to it.

More Quick Links: Batik SVG · Velocity · Python · Jython · JDOM · dom4j · Jaxen · Eclipse SWT · Mono · Mozilla · Web Start · Skin L&F · Kunststoff L&F
SourceForge Logo Send your comments, suggestions, praise or poems to Copyright © 2001, 2002 Gerald Bauer