Erro em Java Relection

Eu fui testar um dos códigos desse artigo http://www.guj.com.br/articles/10 sobre Reflection e quando fui rodar deu este erro:

java.lang.NoClassDefFoundError: exemploreflection/Main
Caused by: java.lang.ClassNotFoundException: exemploreflection.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: exemploreflection.Main. Program will exit.
Exception in thread "main" Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Eu só copiei e colei o código, não mudei nada:

[code]import java.lang.reflect.*;

public class Classe1 {

private int funcao1(Object p, int x) throws NullPointerException {
    if (p == null) {
        throw new NullPointerException();
    }
    return x;
}

public static void main(String args[]) {
    try {
        Class cls = Class.forName("Classe1");
        Method methlist[] = cls.getDeclaredMethods();

        for (int i = 0; i < methlist.length; i++) {
            Method m = methlist[i];
            System.out.println("nome = " + m.getName());
            System.out.println("membro da classe = " + m.getDeclaringClass());
            System.out.println("modificador = " + Modifier.toString(m.getModifiers()));
            Class pvec[] = m.getParameterTypes();

            for (int j = 0; j < pvec.length; j++) {
                System.out.println("parâmetro #" + j + " " + pvec[j]);
            }

            Class evec[] = m.getExceptionTypes();
            for (int j = 0; j < evec.length; j++) {
                System.out.println("exceção #" + j + " " + evec[j]);
            }

            System.out.println("tipo de retorno = " + m.getReturnType());
            System.out.println("-----");
        }
    } catch (Throwable e) {
        System.err.println(e);
    }
}

}[/code]

Alguma ideia do que pode ser?

Você deve estar usando o NetBeans certo?
O que acontece é que ele não está encontrando a classe que deve iniciar a execução.

Para resolver isso, o código que você colou deve ser a classe Main e estar contido dentro do pacote “exemploreflection”.
Ou então, vc deve entrar nas propriedades do projeto e configurar a classe principal como a classe que você etsá usando (Classe1)
Ou ainda, você pode executar apenas a classe em questão, usando o atalho Shift+F6.

[]'s

Eu nunca fiz reflection da classe que está sendo executada.
Reflection dela mesma?
se não for este o problema então certamente é porque vc não informou o pacote da classe que quer fazer a reflexão.

Funcionou

Mudei o nome da classe pra Main e coloquei dentro do pacote. Era exatamente o que vocês disseram.

Valeu :smiley: