The JVM won't look into nested jar files for classes. Eclipse has a FatJar feature that lets you create runnable jars with nested jars within it. for ant I think you can use one-jar. Here is a link http://one-jar.sourceforge.net/
________________________________ From: Rob Tanner <caspersg...@gmail.com> To: user@ant.apache.org Sent: Monday, June 17, 2013 3:38 PM Subject: Access jar files in a library directory in the jar file Hi, I'm trying to build a runnable jar file that includes several libraries that are also jar files. My problem is that Java does not seem to be able to find the libraries. I get this message when I try to run the jar file: java -jar LibraryAlmaInterface.jar Exception in thread "main" java.lang.NoClassDefFoundError: org/linfield/PreferencesManager/XMLPrefs at org.linfield.Library.PatronDataTransfer.<clinit>(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.linfield.PreferencesManager.XMLPrefs at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 1 more You can see from the table of contents that the c;ass file is there: jar tf LibraryAlmaInterface.jar META-INF/ META-INF/MANIFEST.MF lib/ org/ org/linfield/ org/linfield/Library/ org/linfield/Library/Workers/ lib/jsch-0.1.49.jar lib/linfield.jar lib/log4j-1.2.15.jar lib/xerces.jar org/linfield/Library/CalculateBarcode.class org/linfield/Library/PatronDataTransfer.class org/linfield/Library/Workers/MyUserInfo.class org/linfield/Library/Workers/PatronLoadsXML.class org/linfield/Library/Workers/SecureFTPHandler.class And the linfield.jar contains the class that the loader can't find: META-INF/ META-INF/MANIFEST.MF org/ org/linfield/ org/linfield/PreferencesManager/ org/linfield/PreferencesManager/PreferencesParser.class org/linfield/PreferencesManager/XMLPrefs.class org/linfield/PreferencesManager/XMLPrefs.java org/linfield/PreferencesManager/PreferencesParser.java And the manifest in linfield.jar is: cat META-INF/MANIFEST.MF Manifest-Version: 1.0 Created-By: 1.4.0 (Sun Microsystems Inc.) And most importantly, here is the main MANIFEST.MF file (for LibraryAlmaInterface.jar): cat META-INF/MANIFEST.MF Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.3 Created-By: 1.6.0_45-b06-451-11M4406 (Apple Inc.) Built-By: rtanner Main-Class: org.linfield.Library.PatronDataTransfer Class-Path: lib/jsch-0.1.49.jar lib/linfield.jar lib/log4j-1.2.15.jar lib/xerces.jar I'm assuming that the problem is with the manifest, but I have no idea what it is. Any help would be greatly appreciated. Thanks, Rob Tanner Linfield College