Saber se uma classe existe

ola a todos !!!

tem como (se sim, como) saber se uma classe existe ?

e em qual package ?

obrigado !!!

usando uma String??

Class c = Class.forName( "Classname" );

verifique a variável ‘c’

:shock:

ok… vou testar… obrigado !

e, pra saber em qual package a classe pertence ???

veja o meu bloco, mas esta sempre passando pela excecao:

//////////////////////////////// saber se a classe existe ////////////////////////////////
JOptionPane.showMessageDialog(null, "NomeDaClasse" );
Class c;
try {
    c = Class.forName( "NomeDaClasse" );
    JOptionPane.showMessageDialog(null, c );
} catch (ClassNotFoundException ex) {
    Logger.getLogger(SystMnu.class.getName()).log(Level.SEVERE, null, ex);
    //JOptionPane.showMessageDialog(null, "problema em saber se a classe existe." ); // SEMPRE PASSA AKI.
}
//////////////////////////////////////////////////////////////////////////////////////////

Ogrigado…

Tambem passo por este problema!

Mas no meu caso queria saber isso em tempo de execução, e alem de tudo queria saber se é uma classe do proprio Java ou alguma carregada no CLASSPATH ou se é uma classe construida por mim. Já tentei utilizar o ClasserLoader, mas surtiu o resultado esperado.

Poderia explicar melhor o seu problema? Acredito que para determinar se ela existe ou não, oprocedimento é este mesmo, mas vale lembrar que para criar um Class tem-se que passar o caminho completo da classe, assim, se uma classe esta dentro do pacote beans e se chama Pessoa, deveria ser feito da seguinte forma:

[code]
try{
Class classe = Class.forName(“beans.Pessoa”);

}catch(Exception e){
//Tratamento caso não exista esta classe
}[/code]

Att…

Coloquei faz algum tempo um exemplo aqui no fórum de como fazer para listar as classes utilizadas em um determinado projeto, é possível listar as classes do projeto e também as que estão no classpath.

segue o link:
http://www.guj.com.br/posts/list/127873.java

Utilizei este código para conseguir montar uma API dentro de um software, listando classes e seus métodos. Talvez ajude vocês!

att

Oi,

Apenas uma observação: Se você deseja saber se existe uma classe fora do seu package, você deverá especificar o caminho completo ao chamar a função Class.forName.

Você pode utilizar o comando Teste.class.getName() (mesmo que: package.subpackage.class que irá retornar a “estrutura” completa até chegar na classe.:

[code]try {
Class.forName(Teste.class.getName());
}
catch (ClassNotFoundException e) {

e.printStackTrace();

}[/code]

Tchauzin!

[quote=Lucas Bellin]Coloquei faz algum tempo um exemplo aqui no fórum de como fazer para listar as classes utilizadas em um determinado projeto, é possível listar as classes do projeto e também as que estão no classpath.

segue o link:
http://www.guj.com.br/posts/list/127873.java

Utilizei este código para conseguir montar uma API dentro de um software, listando classes e seus métodos. Talvez ajude vocês!

att[/quote]

OLA… eu aproveite esse codigo desse link, mas tem problemas:

  1. ele lista classes q ja foram apagas e q nao existem mais;
  2. qdo construo para a distribuicao, ele nao lista nada !

mas, agora, ja estou precisando alem do tema desse topico. preciso saber tambem:

  1. qual classe o metodo pertence.

agradeco aos q ajudar.
obrigado !

humm… assim que conseguir um tempinho vou revisar aquele código e verificar isso que você disse…

quanto a saber a que classe o método pertence, tem como saber os métodos de determinada classe (todas as classes), mas acho que o caminho inverso não… ao menos não sem fazer um laço percorrendo todas as classes, mas vou testar aqui também…

Exatamente (eh inverso, sim)

acho q porque pela pelo .java e no distrib nao tem esses arquivos.

obrigado !

Up !!!