@Override public void close() { try { if (classesLoader != null) { classesLoader.close(); deleteDir(tempClassesJar); } aarFile.close(); } catch (IOException e) { // ignore } }
public AarLoader(@Nullable File file) { if (file == null) { throw new IllegalArgumentException("file can't be null"); } try { aarFile = new ZipFile(file); classesLoader = extractClassesJar(file.getName()); } catch (IOException e) { throw new IllegalStateException("Unable to open " + file.getAbsolutePath(), e); } }
/** * @param files ordered list of files and directories from which to load classes and resources */ public SquidClassLoader(List<File> files) { super(computeParent()); loaders = new ArrayList<>(); for (File file : files) { if (file.exists()) { try { if (file.isDirectory()) { loaders.add(new FileSystemLoader(file)); } else if (file.getName().endsWith(".jar")) { loaders.add(new JarLoader(file)); } else if (file.getName().endsWith(".aar")) { loaders.add(new AarLoader(file)); } } catch (IllegalStateException e) { LOG.warn("Unable to load classes from '{}'", file.getPath()); LOG.debug("{}: {}", e.getMessage(), e.getCause().getMessage()); } } } }
/** * @param files ordered list of files and directories from which to load classes and resources */ public SquidClassLoader(List<File> files) { super(computeParent()); loaders = new ArrayList<>(); for (File file : files) { if (file.exists()) { try { if (file.isDirectory()) { loaders.add(new FileSystemLoader(file)); } else if (file.getName().endsWith(".jar")) { loaders.add(new JarLoader(file)); } else if (file.getName().endsWith(".aar")) { loaders.add(new AarLoader(file)); } } catch (IllegalStateException e) { LOG.warn("Unable to load classes from '{}'", file.getPath()); LOG.debug("{}: {}", e.getMessage(), e.getCause().getMessage()); } } } }
public AarLoader(@Nullable File file) { if (file == null) { throw new IllegalArgumentException("file can't be null"); } try { aarFile = new ZipFile(file); classesLoader = extractClassesJar(file.getName()); } catch (IOException e) { throw new IllegalStateException("Unable to open " + file.getAbsolutePath(), e); } }
@Override public void close() { try { if (classesLoader != null) { classesLoader.close(); deleteDir(tempClassesJar); } aarFile.close(); } catch (IOException e) { // ignore } }