I\'ve spent far too much time trying to figure this out. This should be the simplest thing and everyone who distributes Java applications in jars must have to deal with it.
You can access the manifest (or any other) file within a jar if you use the same class loader to as was used to load the classes.
this.getClass().getClassLoader().getResourceAsStream( ... ) ;
If you are multi-threaded use the following:
Thread.currentThread().getContextClassLoader().getResourceAsStream( ... ) ;
This is also a realy useful technique for including a default configuration file within the jar.