|
I made my own JarFile class for that purpose. The
public inner class MyJarEntry can access its outer Jar file.
Please let me know if you have any
questions.
Alan
MyJarFile Class
public class MyJarFile extends JarFile
{
public MyJarFile(
String str ) throws IOException {
super( str ); } public Enumeration
entries() {
final Enumeration enum = super.entries(); return new Enumeration() { public boolean hasMoreElements() { return enum.hasMoreElements(); } public Object nextElement() { ZipEntry ze = (ZipEntry)enum.nextElement();
return new MyJarEntry(ze, MyJarFile.this
);
} }; } public class
MyJarEntry extends JarEntry {
private JarFile parentJarFile; MyJarEntry(ZipEntry ze, JarFile pJarFile) { super(ze); parentJarFile = pJarFile; } public JarFile getParentJarFile() { return parentJarFile; } } } Test Program
public class Untitled1 {
public static void main(String[] args)
{
try { MyJarFile aJar = new MyJarFile( "c:\\temp\\ant-iplanet.jar"); Enumeration enu = aJar.entries(); while ( enu.hasMoreElements() ) { MyJarFile.MyJarEntry myJFE = ( MyJarFile.MyJarEntry )enu.nextElement(); System.out.println( myJFE.getParentJarFile().getName() ); } } catch ( IOException e ) { e.printStackTrace(); } } }
|