Como Pegar Nome Dos pacotes e das classes de um projeto

321 views
Skip to first unread message

Thiago Ramalho

unread,
May 26, 2009, 1:06:24 PM5/26/09
to PBJug

Boa tarde Galera,

Eu to com uma puta duvida aqui, já procurei em todos os cantos e não consegui encontrar nada,
meu pró é o seguinte...

1- Estou precisando pegar o nome de todos os pacotes que eu tenho no meu projeto(Usando classe Package eu consegui pegar apenas o pacote que estou rodando a classe main). eu preciso do nome de todos os pacotes do projeto

2- Preciso tbm pegar o nome de todas as classes que estão nesse pacote, pra futuramente usar seus metodos.

Eu acho que se eu for fazer como um plugin pro eclipse eu consigo pegar essas funcionalidades, porém não é isso que eu quero a principio, a ferramenta que estou desenvolvendo utiliza as propias classes do projeto.


Agradeço sujestões.


--
Thiago N Ramalho.
Estagiário da UDPB
DATAPREV - Empresa de Tecnologia e Informações da Previdência Social
Bacharelando em Sistemas de Informação, 7º Período

Maurício Linhares

unread,
May 26, 2009, 1:56:12 PM5/26/09
to pb...@googlegroups.com
Você precisa pegar o valor da variável CLASSPATH do ambiente, pegar
todos os diretórios e arquivos jar que aparecem lá e então procurar os
arquivos .class que são os que vão conter as classes.

Dependendo do ambiente só o CLASSPATH não vai ser suficiente, em uma
aplicação web além do classpath você precisa olhar os arquivos que
estão dentro da pasta WEB-INF/lib e WEB-INF/classes.

-
Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/ (en)



2009/5/26 Thiago Ramalho <thiago....@gmail.com>:

Thiago Ramalho

unread,
May 26, 2009, 2:23:34 PM5/26/09
to pb...@googlegroups.com
No meu caso, eu preciso pegar o nome dos pacotes, dentro do projeto que eu
ainda to desenvolvendo, sem ser pelo jar. Dei uma pesquisada e vi o pessoal falando do JFileChooser.
Eu acredito que usando o JFileChooser e indo direto na raiz do projeto, eu consiga alguma coisa.
Alguém tem alguma ideia?


2009/5/26 Maurício Linhares <mauricio...@gmail.com>

Eduardo Oliveira

unread,
May 26, 2009, 5:13:44 PM5/26/09
to pb...@googlegroups.com
Thiago,

Criei uma rotina pra você.
Vê se serve!

Atenciosamente,

Eduardo Rodrigues de Oliveira

import java.io.File;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class ListingPackages {
private Map files = null;

public static void main(String[] args) {
ListingPackages lp = new ListingPackages();
lp.printPathFileList("C:\\MyDocs\\workspace\\MyProject\\src");
}

public void printPathFileList(String initialPath) {
File file = new File(initialPath);
generatePathFileList("", file);
if (files != null) {
Iterator it = files.keySet().iterator();
while (it.hasNext()) {
String folderName = (String) it.next();
System.out.println("Listing directory [" + folderName + "]");
System.out.println("======================================");
Iterator fileNamesIt = ((FileList)
files.get(folderName)).getFilesNames().iterator();
while (fileNamesIt.hasNext()) {
String fileName = (String) fileNamesIt.next();
System.out.println("--> " + fileName);
}
System.out.println("");
}
}
}

private void generatePathFileList(String currentFolder, File file) {
String[] f = file.list();
for (int x = 0; x < f.length; x++) {
File vfile = new File(file.getAbsolutePath() + "/" + f[x]);
if (vfile.isDirectory()) {
generatePathFileList((currentFolder.equals("") ? "" :
currentFolder.concat(".")) + f[x], vfile);
} else {
// is file
if (files == null) {
files = new TreeMap();
}
if (files.get(currentFolder) != null) {
((FileList) files.get(currentFolder)).addFileName(f[x]);
} else {
files.put(currentFolder, new FileList(f[x]));
}
}
}
}
}
class FileList {
private Set filesNames = new HashSet();

public FileList(String fileName) {
filesNames.add(fileName);
}

public void addFileName(String fileName) {
filesNames.add(fileName);
}

public Set getFilesNames() {
return filesNames;
}
}

Thiago Ramalho

unread,
May 26, 2009, 9:11:38 PM5/26/09
to pb...@googlegroups.com

Nossa Cara, era exatamente isso que eu estava precisando
ajudo um "bucadão".

vlw msmo. 



2009/5/26 Eduardo Oliveira <eduardo.o...@gmail.com>

Eduardo Oliveira

unread,
May 27, 2009, 11:01:14 AM5/27/09
to pb...@googlegroups.com
Legal!

Boa sorte Thiago!
Se puder ajudar em algo mais...

Abração,

Eduardo

2009/5/26 Thiago Ramalho <thiago....@gmail.com>:
Reply all
Reply to author
Forward
0 new messages