Oppure

Loading
12/12/07 11:08
Tronky
Salve a tutti, vengo subito al sodo.
Ho un problema con java java.lang.ClassLoader.

Devo istanziare un A.class a runtime ed utilizzarlo all'interno di un programma P

P si trova nel package 'pck1'
A si trova nel package 'pck2'

Quando provo ad istanziare 'pck2.A' ottengo

java.lang.ClassNotFoundException: abcmanager.addon.controller.EntropyController
at java.net.URLClassLoader.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.findSystemClass(ClassLoader.java:882)
at classloader.CustomClassLoader.findClass(CustomClassLoader.java:51)
at classloader.CustomClassLoader.loadClass(CustomClassLoader.java:40)
at classloader.Main.main(Main.java:62)
Exception in thread "main" java.lang.NullPointerException
at classloader.CustomClassLoader.findClass(CustomClassLoader.java:58)
at classloader.CustomClassLoader.loadClass(CustomClassLoader.java:40)
at classloader.Main.main(Main.java:62)
Java Result: 1

Invece se sposto A.class nel package pck1, funziona tutto perfettamente.
Ho provate anche a leggere dal jar che contiene il file A.class ma da sempre lo stesso problema.

Dove sbaglio?
Potrebbe essere un problema di permessi visto che

SecurityManager sm = new SecurityManager();
System.setSecurityManager(sm);
FilePermission perm = new FilePermission("c:\A.class", "read";);
sm.checkPermission(perm);

solleva


Exception in thread "main" java.security.AccessControlException: access denied (java.io.FilePermission c:\EntropyABCController.jar read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at classloader.Main.main(Main.java:48)
Java Result: 1

Grazie mille



aaa
14/12/07 20:58
netarrow
se il problema sono proprio i permessi potresti provare a controllare i policy file

pierotofy.it/pages/guide_tutorials/Java/…_i_policy_file/

ma sei in un'applicazione standalone? perchè quelle girano senza SecurityManager attivati di default e quindi non dovrebbe esserci la JVM che ti blocca come fa per le applet non firmate.
aaa
15/12/07 12:48
Tronky
Salve netarrow.
Ho risolto il problema. Non e' un problema di permessi. In pratica non riuscivo a troavare i file class da caricare. Utilizzando invece java.net.URLClassLoader e' molto piu' semplice localizzare i file. Il costruttore di tale classe accetta il path verso una directory oppure verso un jar file.

Grazie per l'aiuto.
aaa