buona sera a tutti,
sto utilizzando un oggetto URLClassLoader che mi permette di modificare in run time il classPath che deve essere utilizzato tramite il metodo addURL(URL url).
poi mi sono implementato un metodo removeURL(URL url). Questo mio metodo elimina dalla lista del classPath la sorgente passata ma non viene realmente eliminata.
post del codice:
dove String s è il percorso del jar che voglio eliminare.codice:private static URLClassLoader sysloader=(URLClassLoader)ClassLoader.getSystemClassLoader(); .. public static void removeURL(String s) throws IOException { File f = new File(s); URL urlF = f.toURL(); List<URL> urlList = new ArrayList<URL>(Arrays.asList(getURL())); List<URL> urlListTMP = new ArrayList<URL>(Arrays.asList(getURL())); for (URL tmpURL : urlList) if (tmpURL.equals(urlF)) urlListTMP.remove(urlF); URL[] arrayOfURL = urlListTMP.toArray(new URL[] {}); sysloader = URLClassLoader.newInstance(arrayOfURL); }
Quindi mi domando, è possibile (in qualsiasi modo) eliminare in runtime un jar che fa parte del ClassPath?

Rispondi quotando