ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Seegel <RobSee...@comcast.net>
Subject Re: Access jar files in a library directory in the jar file
Date Tue, 18 Jun 2013 20:51:13 GMT
Rob,

   There are various open source solutions out there to do what you're 
looking for, but there is no "built-in" way to do what you want to do 
using plain Java. I saw someone else suggest one-jar which is what I 
would have suggested, too. There is another one called Meta Jar that 
basically does the same thing. (http://www.yagga.net/java/metajar/ )

Rob

On 6/17/13 6:38 PM, Rob Tanner 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
>
>
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message