|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2002
Città: Avellino
Messaggi: 172
|
[JAVA] Loadig dinamico classi, come risolvere??
Ho la necessità di caricare dinamicamente una classe, impostando dinamicamente anche le dipendenze di questa classe anche da eventuali file jar. Ho tentato un approccio del tipo mostrato nell'esempio seguente che però genera una eccezzione
public class prova { public prova()throws Exception{ URLClassLoader cl; File f1=new File("C:/IRApplication/lib/jdeal/jdeal.jar"); File f2=new File("C:/IRApplication/IR"); File f10=new File("C:/IRApplication/extensions/algorithms/DCGA"); URL url1=f1.toURL(); URL url2=f2.toURL(); URL url10=f10.toURL(); URL[] u=new URL[] {url2,url1,url10}; //vreo un classloader per leggere la mia classe cl = new URLClassLoader(u,this.getClass().getClassLoader()); //cerco di caricare la classe Class c=Class.forName("it.unisannio.rcost.cise.dcga.IRDeterministicCrowding",true,cl); System.out.println("OK"); } Il codice dicevo genera un'eccezione dovuta all'impossibilità di risolvere correttamente una dipendenza tra la classe ed una classe contenuta nel jar Exception in thread "main" java.lang.NoClassDefFoundError: pt/laseeb/jdeal/ChromosomeEvaluator at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at prova.<init>(prova.java:21) at prova.main(prova.java:28) qualcuno ha idea del perchè possa succedere questo????
__________________
"Riempi loro i crani di dati non combustibili,imbottiscili di "fatti" al punto che non si possono più muovere tanto son pieni, ma sicuri d'essere "veramente bene informati". Dopo di che avranno la certezza di pensare, quando in realtà sono fermi come un macigno..." FAHRENHEIT 451 |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Oct 2002
Città: Avellino
Messaggi: 172
|
risolto
![]()
__________________
"Riempi loro i crani di dati non combustibili,imbottiscili di "fatti" al punto che non si possono più muovere tanto son pieni, ma sicuri d'essere "veramente bene informati". Dopo di che avranno la certezza di pensare, quando in realtà sono fermi come un macigno..." FAHRENHEIT 451 |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
qual era il problema? il tuo codice sembra correto. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:34.