Galera é o seguinte, estou fazendo uma aplicação e tenho que adicionar classes ou jars em tempo de execução. Li na última edição da JavaMagazine como fazer isso, só que não está dando certo.
Vejam só:
System.out.println("Classpath Antes: "+System.getProperty("java.class.path"));
System.setProperty("java.class.path",System.getProperty("java.class.path")+";Z:\\Teste\\GerenciaMail.jar");
System.out.println("Classpath Depois: "+System.getProperty("java.class.path"));
Class cls = Class.forName("mailManager.Correio");
Adicionei o GerenciaMail.jar no classpath e tentei criar um objeto do tipo Class usando o Class.forName(“mailManager.Correio”);
O que apareceu no console foi o seguinte:
[color=“red”]Classpath Antes: Z:\Projetos\pro_tcc\classes;Z:\Projetos\pro_tcc\lib\visuallib.jar;Z:\Projetos\pro_tcc\lib\JLink.jar
Classpath Depois: Z:\Projetos\pro_tcc\classes;Z:\Projetos\pro_tcc\lib\visuallib.jar;Z:\Projetos\pro_tcc\lib\JLink.jar;Z:\Teste\GerenciaMail.jar
java.lang.ClassNotFoundException: mailManager.Correio
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at frb.tcc.teste.gui.Teste.main(Teste.java:2
Exception in thread “main” [/color]
O que eu tenho que fazer para poder “enxergar” essa classe?
Tem alguma relação com ClassLoader (não entendo bem)?
Grato desde já