| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 10:40:37
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1694
Offline
|
Bom dia pessoal!
Estou pesquisando aqui, mas não consigo encontrar.
Não sei se são as minhas tags mas não consigo obter bons resultados.
Enfim, gostaria de saber se há algum modo, acredito que por reflection, de se obter uma lista das classes existentes em um pacote.
Isso é possível? Se for, como?
Realmente minhas pesquisas não tem retornado resultados satisfatórios, tentei começar pelo "Package.getPackage" mas os métodos que ele possui não ajudaram muito, ou não soube usa-los corretamente.
Agradeço pela ajuda antecipadamente.
Abraços.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 10:51:55
|
Felagund
GUJ Master
![[Avatar]](/images/avatar/d8d855c465198499868fb2b566ebee8d.jpg)
Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline
|
cara, aparentemente não dá pra saber se tem como, mas se vc pegar um pacote e percorrer os arquivos contidos dentro desse pacote, vc pode procurar os arquivos .class (ou .java) dentro do diretorio.
|
att
Rafael Felix
Rolling With Code
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 11:01:09
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1694
Offline
|
Felagund wrote:cara, aparentemente não dá pra saber se tem como, mas se vc pegar um pacote e percorrer os arquivos contidos dentro desse pacote, vc pode procurar os arquivos .class (ou .java) dentro do diretorio.
Nossa, que trampo cara.
Imaginei que houvesse uma maneira mais simplificada de se fazer isso, como todo o resto de reflection.
A propósito, esqueci de dizer no post original que não posso usar framework algum.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 11:08:41
|
Felagund
GUJ Master
![[Avatar]](/images/avatar/d8d855c465198499868fb2b566ebee8d.jpg)
Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline
|
Pois é, bem que a classe Package podia ter uma metodo getDeclaredClasses
|
att
Rafael Felix
Rolling With Code
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 11:10:44
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1694
Offline
|
Felagund wrote:Pois é, bem que a classe Package podia ter uma metodo getDeclaredClasses

Era exatamente o que eu tava procurando hahaha.
Quanto a sua solução achei meio, ahn... não trabalhosa assim de difícil, mas cheira um pouquinho estranho, entende?
Se não existir outra alternativa mesmo vou sugerir outra abordagem aqui pro que queremos fazer. Mas isso não vem ao caso.
Se não aceitarem vai desse jeito mesmo uahhuauhaua
Abraços!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 11:28:08
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
Tchello wrote: Bom dia pessoal!
Estou pesquisando aqui, mas não consigo encontrar.
Não sei se são as minhas tags mas não consigo obter bons resultados.
Enfim, gostaria de saber se há algum modo, acredito que por reflection, de se obter uma lista das classes existentes em um pacote.
Isso é possível? Se for, como?
isso é possivel, mas não ha uma API padrão para isso. A razão se prende com o fato de que não é garantido que a jvm corra em cima de um OS com
sistema de arquivos.
Veja este topico http://www.guj.com.br/posts/list/127873.java#697230
com exemplo usando File ( não funciona com jar)
Se vc conseguri abstrair a localização de forma a poder usar qq URL de origem, o processo resume-se a listar os arquivos .class na pasta do pacote.
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 12:40:59
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1694
Offline
|
sergiotaborda wrote:
Tchello wrote: Bom dia pessoal!
Estou pesquisando aqui, mas não consigo encontrar.
Não sei se são as minhas tags mas não consigo obter bons resultados.
Enfim, gostaria de saber se há algum modo, acredito que por reflection, de se obter uma lista das classes existentes em um pacote.
Isso é possível? Se for, como?
com exemplo usando File ( não funciona com jar)
Se vc conseguri abstrair a localização de forma a poder usar qq URL de origem, o processo resume-se a listar os arquivos .class na pasta do pacote.
Era esse meu medo, esse "módulo" ficará empacotado num jar para ser reaproveitado.
Procurarei por soluções alternativas. =Z
Abraços.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 14:09:19
|
Ataxexe
JavaEvangelist
![[Avatar]](/images/avatar/8ed02495f7499c010a3b22c830438ec2.jpg)
Membro desde: 11/10/2007 15:34:17
Mensagens: 418
Localização: Brasília
Offline
|
Eu tenho um projetinho que, dentre algumas coisas, possui uma DSL pra isso. Talvez o código-fonte dele te dê alguma base (é bastante simples). Ele conta com a abstração que o Sérgio mencionou (baseada em URL) e tem 3 implementações: arquivos, jar e bundle do eclipse (pra usar em aplicativos RCP).
http://sourceforge.net/projects/trugger/
Exemplo:
Se precisar de ajuda pra fazer um (ou pra usar meu projeto) estou sempre por aqui.
|
Marcelo Guimarães
https://github.com/ataxexe
http://sourceforge.net/projects/trugger
http://www.youtube.com/user/ataxexe
http://www.flickr.com/photos/ataxexe |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 14:11:30
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1694
Offline
|
Ataxexe wrote:Eu tenho um projetinho que, dentre algumas coisas, possui uma DSL pra isso. Talvez o código-fonte dele te dê alguma base (é bastante simples). Ele conta com a abstração que o Sérgio mencionou (baseada em URL) e tem 3 implementações: arquivos, jar e bundle do eclipse (pra usar em aplicativos RCP).
http://sourceforge.net/projects/trugger/
Exemplo:
Se precisar de ajuda pra fazer um (ou pra usar meu projeto) estou sempre por aqui.
Interessante cara, era por ai mesmo que eu tava querendo.
Pegar todas as classes de um pacote listando-as pra encontrar qual era implementação de determinada interface.
Vou estudar o código aqui, se tiver alguma dúvida posto de novo.
Muito obrigado!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/03/2010 14:18:17
|
Ataxexe
JavaEvangelist
![[Avatar]](/images/avatar/8ed02495f7499c010a3b22c830438ec2.jpg)
Membro desde: 11/10/2007 15:34:17
Mensagens: 418
Localização: Brasília
Offline
|
Era essa a minha necessidade quando fiz essa DSL. Espero que te ajude tanto quanto me ajudou
Apenas se atente que o padrão é ele buscar apenas no pacote e todas as classes (anônimas, internas, etc.), mas isso é facilmente configurável (tem métodos pra restringir o nível de acesso, buscar classes não-anônimas, em subpacotes, etc.)
|
Marcelo Guimarães
https://github.com/ataxexe
http://sourceforge.net/projects/trugger
http://www.youtube.com/user/ataxexe
http://www.flickr.com/photos/ataxexe |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2011 15:02:30
|
mews
Debugger
![[Avatar]](/images/avatar/acf51b91988032899d0bbaf8a6130e53.jpg)
Membro desde: 28/03/2009 06:45:07
Mensagens: 59
Offline
|
Desculpa abrir novamente esse tópico.
Estou utilizando a api trugger para listar classes que contenham anotação @Entity.
No meu caso preciso listar todas as classes de diferentes diretórios e não gostaria de definir tão especificadamente.
e sim:
valew
|
Ajudar os outros é viciante!
Willian Mews
Analista de Desenvolvimento
Estudante de Engenharia da Computação |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2011 19:36:24
|
Ataxexe
JavaEvangelist
![[Avatar]](/images/avatar/8ed02495f7499c010a3b22c830438ec2.jpg)
Membro desde: 11/10/2007 15:34:17
Mensagens: 418
Localização: Brasília
Offline
|
Você pode usar o método recursively: Abraços
This message was edited 1 time. Last update was at 14/03/2011 19:37:13
|
Marcelo Guimarães
https://github.com/ataxexe
http://sourceforge.net/projects/trugger
http://www.youtube.com/user/ataxexe
http://www.flickr.com/photos/ataxexe |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2011 20:57:27
|
mews
Debugger
![[Avatar]](/images/avatar/acf51b91988032899d0bbaf8a6130e53.jpg)
Membro desde: 28/03/2009 06:45:07
Mensagens: 59
Offline
|
Muito obrigado.
Serviu perfeitamente.
abraços
|
Ajudar os outros é viciante!
Willian Mews
Analista de Desenvolvimento
Estudante de Engenharia da Computação |
|
|
 |
|
|