GenJar : Java Glossary

go to home page G words local find full screen, hide local find menu Google search web for more information on this topic jump to foot of page translate this page with Babelfish punctuation 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (all) ©1996-2009 2008-02-03 Roedy Green, Canadian Mind Products
GenJar
An open source tool for tracking java dependencies. It builds jar files that automatically contain all the classes used directly or indirectly by the classes you explicitly include. You need this because jar.exe is not clever enough to do this on its own. It runs only as an ant task. It is a complex tool controlled with an XML script. It will also build an extended manifest describing all the elements. Of course it has no way of knowing about dynamically loaded classes or resources. The latest version is 1.0.2. Last revised: 2003-03-06 Verified: 2008-01-21 to fix exception message regression

To use genjar:

  1. Extract the jar from the archive using WinZip.
  2. Copy genjar.jar to apache-ant-1.7.1\lib\. This is a one-time step.
  3. Compose your <genjar XML script and or incorporate it into an ant build.xml in the project directory with the class files where you want the jar built.
  4. CD to that project directory.
  5. Then run your script with:
    ant jar
Don’t use the genjar destdir option. It does not produce a simple list of dependencies to feed to jar.exe but rather a copy of the entire directory tree of classes that would go inside the jar.
Genjar error messages are misleading. It will complain about the main class when the real problem is some totally different class.

Real Life Build Script

This build script builds Biorhythms, a signed Applet. You make genjar known no the script with: <taskdef resource="genjar.properties" /> Oddly there is no genjar.properties file anywhere. This is sufficient to look in GenJar.jar for Resource.class to define the syntax.
Here is how you would include a whole directory full of *.png resource images in your jar:

Advanced GenJar

You can use the <library command to unpack and include some other library jar inside your jar. You can use the <class command to include just the stuff from a library needed to support a given class. You can use the <classpath command if GenJar seems to be having trouble finding some auxiliary library.

In this example we persuade GenJar to include just the classes used by the TrueZip library jar and bundle them in the application jar.

ant
Cramfull: ensure all resources included in jar
dependencies
jar.exe
xml

CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/genjar.html J:\mindprod\jgloss\genjar.html
CMP logofeedback Please email your feedback for publication, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.191.107]
You are visitor number 11,576.