Como descobrir a qual arquivo .jar uma determinada classe Java pertence

aulas de exibição de jar

Um dos problemas que sempre enfrentamos desenvolvedores de software é uma desordem, e é muito simples começar a ter arquivos espalhados pelo sistema, uma vez que começamos a testar diferentes versões de nossos programas (por exemplo, quando modificamos alguma funcionalidade dentro dele). E o mesmo acontece com arquivos de código fonte, que pode hospedar classes diferentes e então é difícil para nós descobrirmos a qual classe cada uma pode pertencer.

No caso de Java, o mais comum é precisar descobrir a qual arquivo JAR uma determinada classe Java pertence a fim de resolver os problemas típicos de 'NoClassDefFoundError' algo que felizmente não é muito complicado como veremos a seguir. Mas antes disso vamos explicar que JARs são basicamente arquivos compactados, de forma que para podermos examiná-los, uma alternativa é descompactá-los ou buscar uma alternativa que nos permita 'olhar' dentro deles.

Para isso podemos executar o seguinte, supondo que vamos revisar um arquivo chamado resistor (é de um aplicativo muito simples que criei para calcular o valor de uma resistência), mas é claro que em cada caso ele é substituído por o nome do arquivo que queremos revisar:

$ jar tvf resistor.jar

O resultado será o que visualizamos na imagem superior que acompanha este post, e onde temos visível todos os arquivos que compõem um determinado JAR, entre as quais, é claro, estão as famosas .class que compõem as classes de uma aplicação, com as quais finalmente saberemos quais arquivos contêm as classes que procuramos.

Agora, embora no caso do Linux sempre tenhamos diante de nós uma maneira de fazer as coisas desde o terminal, para muitos usuários é mais prático fazê-las a partir de uma aplicação gráfica, mesmo que implique a instalação de software adicional em seu sistema. Para eles, temos um programa chamado jar-explorer, que nos permite explorar os arquivos JAR para visualizar todo o seu conteúdo, e o bom é que temos uma ferramenta de pesquisa integrada, que nos oferece pesquisas recursivas de classes Java.

É um aplicativo desenvolvido, é claro, em Java, para instalá-lo em Ubuntu nós executamos:

$wget http://jar-explorer.googlecode.com/files/jarexplorer-0.7-BETA.jar
$ java -jar jarexplorer-0.7-BETA.jar

Agora, uma vez que o aplicativo é iniciado, o que temos que fazer é ir para a opção de Arquivo -> Localizar diretório raiz ou arquivo Jare selecione o diretório no qual temos os arquivos JAR. Veremos uma lista de todos os arquivos, na seção 'Lista de arquivos Jar', e então tudo o que temos a fazer é inserir o nome da classe que estamos procurando, o que fazemos no campo de texto localizado à direita de 'Entre na classe para pesquisar'na parte superior da tela. Por fim, clique no botão 'Começar' para iniciar a pesquisa, que não levará mais do que segundos.

Mas explorador de jarros tem mais um recurso que pode ser muito útil para nós e que é nos permitem explorar o conteúdo de cada definição de classe em Java, algo que podemos alcançar apenas clicando no nome da classe (a partir dos resultados da pesquisa anterior).

Isso é tudo, como podemos ver, essas são duas abordagens diferentes, mas totalmente válidas, para pesquisar classes Java entre nossos arquivos JAR, uma tarefa na qual os desenvolvedores caem mais de uma vez e que não precisa ser tediosa ou complicada.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.