2009-04-28 6 views
0

Est-ce que quelqu'un sait un bon moyen de trouver la taille du fichier qui est chargée dynamiquement par urlclassloader?Obtenir la taille du fichier jar chargé par urlclassloader

J'utilise le chargeur d'urlclass de la manière suivante, mais j'ai besoin de garder une trace de la bande passante utilisée.

URLClassLoader sysloader = (URLClassLoader) ClassLoader 
      .getSystemClassLoader(); 
Class<URLClassLoader> sysclass = URLClassLoader.class; 
Method method = sysclass.getDeclaredMethod("addURL", parameters); 
method.setAccessible(true); 
method.invoke(sysloader, (Object[]) urls); 

Merci d'avance!

Répondre

0

Si vous connaissez les urls étant chargés sont http urls, et vous pouvez assurer que le serveur ils sont sur le rendement d'un en-tête Content-Length, vous pouvez obtenir leur taille avec les éléments suivants:

public static int getContentLength (URL url) 
    throws IOException 
{ 
    String contentLength = url.openConnection().getHeaderField("Content-Length"); 
    if (contentLength == null) { 
     throw new IllegalArgumentException(url + " didn't have a " 
      + "Content-Length header"); 
    } else { 
     return Integer.parseInt(contentLength); 
    } 
} 
Questions connexes