Sapere con certezza da che jar viene presa una classe

Forse non viene caricato il mio jar di javamail, ma viene preso uno di Jboss!!

Ma il classloader dovrebbe privilegiare il jar della mia webapp!!

Se state ridendo è perchè anche a voi è capitato di pensare a queste frasi.

Per togliervi tutti i dubbi, basta inserire le seguenti righe di codice in una vostra classe…et voilà…. saprete con certezza il jar da cui è presa una classe:

Class cls = InternetAddress.class;
ProtectionDomain pDomain = cls.getProtectionDomain();
CodeSource cSource = pDomain.getCodeSource();
URL loc = cSource.getLocation();

log.info("Il jar di javamail caricato si trova in" + loc);

Nell’esempio la classe in esame è InternetAddress.class.

Lascia un commento