Hi Rob, I don't think you can have JAR files inside the JAR file like that.
On Mon, Jun 17, 2013 at 6:38 PM, Rob Tanner <caspersg...@gmail.com> wrote: > 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 > > > > > -- *Joe Attardi* j...@attardi.net