У меня есть файл JAR с именем " OuterJar.jar ", который содержит другой файл с именем " InnerJar.jar ", этот InnerJar содержит 2 файла с именем " Test1.class"&" Test2.class". Теперь я хочу извлечь эти два файла.Я попробовал какой-то кусок кода, но он не работает.
class NestedJarExtractFactory{
public void nestedJarExtractor(String path){
JarFile jarFile = new JarFile(path);
Enumeration entries = jarFile.entries();
while (entries.hasMoreElements()) {
JarEntry _entryName = (JarEntry) entries.nextElement();
if(temp_FileName.endsWith(".jar")){
JarInputStream innerJarFileInputStream=new JarInputStream(jarFile.getInputStream(jarFile.getEntry(temp_FileName)));
System.out.println("Name of InnerJar Class Files::"+innerJarFileInputStream.getNextEntry());
JarEntry innerJarEntryFileName=innerJarFileInputStream.getNextJarEntry();
///////////Now hear I need some way to get the Input stream of this class file.After getting inputStream i just get that class obj through
JavaClass clazz = new ClassParser(InputStreamOfFile,"" ).parse();
}
///// I use the syntax
JavaClass clazz = new ClassParser(jarFile.getInputStream(innerJarEntryFileName),"" ).parse();
Но проблема в том, что объект "jarFile" является объектом файла OuterJar, поэтому при попытке получить inputStream файла, который существует в InnerJar, невозможно.