JAVA – Procurar classe stub dentro de Ejb Client JAR IBM

Este código compara somente a nível de nome. Uma vez utilizei este código para resolver um problema de conflito de stub em uma JVM.

package muller.martin;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

public class ProcurarClasseStub {
public static void main(String[] args) {
try {

if(args.length == 1){

// Digite Caminho dos libs JAR
String caminho = "c:\diretorio";
String tempNome = "";

List listaJar = new ArrayList();

System.out.println("Pesquisando JAR:");
System.out.println("======================================================================");

File f = new File(caminho);
File[] arquivo = f.listFiles();
if(arquivo != null){
int quantidadeArquivo = arquivo.length;
for(int i = 0;i < quantidadeArquivo; i++){
String nomeRealArquivo = arquivo[i].getName();
String nomeArquivo = nomeRealArquivo.toLowerCase();
String[] centroCusto = nomeArquivo.split("-");
//System.out.println(centroCusto[0]);
if(nomeArquivo.indexOf(".jar") != -1){
System.out.println("JAR: " + nomeArquivo);
JarFile arquivoJar = new JarFile(arquivo[i]);
Enumeration a = arquivoJar.entries();
while(a.hasMoreElements()){
String nomeJar = (String)a.nextElement().toString();
if(nomeJar.indexOf("svn-base") == -1){
if(nomeJar.toLowerCase().indexOf("_stub.class") != -1){
if(nomeJar.matches("com\/ibm\/websphere\/csi.*?Stub\.class|org\/omg\/stub\/java.*?_Stub\.class|com/ibm/ejs/container/.*?_Stub\.class") == false){
if(nomeJar.toLowerCase().indexOf(centroCusto[0]+"/"+centroCusto[1]) == -1){
nomeJar = nomeJar.replaceAll(".class","");
nomeJar = nomeJar.replaceAll("/",".");
//if(nomeJar.equals(encontrarNomePacote)){
if(!tempNome.equals(nomeArquivo))
listaJar.add("nr+ "+nomeRealArquivo);

listaJar.add("-> "+nomeJar);
tempNome = nomeArquivo;
//}
}
}
}
}
}
}
}
}else{
System.out.println("ERRO: Diretorio invalido!");
}
System.out.println("======================================================================");

System.out.println("Resultado da pesquisa");
System.out.println("======================================================================");

for (Iterator iter = listaJar.iterator(); iter.hasNext();) {
String el = (String) iter.next();
System.out.println(el);
}



}

} catch (FileNotFoundException e) {
// TODO Bloco catch gerado automaticamente
e.printStackTrace();
}catch (IOException e) {
// TODO Bloco catch gerado automaticamente
e.printStackTrace();
}
}
}

Deixar uma resposta