Tengo un montón de archivos jar en mi sistema, relacionados con mi aplicación.Cómo encontrar el nombre de clase dentro de un grupo de jarras
¿Cómo puedo encontrar una clase particular en esa gran cantidad de archivos jar?
Gracias
Tengo un montón de archivos jar en mi sistema, relacionados con mi aplicación.Cómo encontrar el nombre de clase dentro de un grupo de jarras
¿Cómo puedo encontrar una clase particular en esa gran cantidad de archivos jar?
Gracias
Si los archivos jar están en la trayectoria de la estructura de su proyecto Eclipse:
Ctrl-Shift-T (para el "tipo abierto", "tipo", como en "clase") trae un cuadro de búsqueda. Puede CamelType (es decir, SB en lugar de StringBuilder).
No le conviene CTRL + T abre 'Type Hierarchy of" Class "' –
Vaya. Quizás Ctrl-shift-T. Lo siento. – Thilo
Ahora estás en lo correcto. +1. –
Usted debe ser capaz de hacer clic derecho sobre el nombre de la clase en un archivo de origen y seleccione uno de los subtemas de la opción de menú Declaraciones contexto - es decir, a la derecha haga clic en el nombre de la clase y seleccione Declaraciones/Proyecto. Esto buscará en el proyecto cualquier declaración de la clase y mostrará la vista de resultados de búsqueda estándar de Eclipse. Supongo que tiene el contenedor como biblioteca en su proyecto de Eclipse.
Si desea hacer esto en el sistema de archivos en su lugar, a continuación, utilizar un bucle for para iterar sobre los archivos JAR y utilizar jar tf FILENAME
para obtener la lista de archivos de clase y la tubería que a través de grep
o findstr
(dependiendo de la plataforma) . Si está utilizando bash
, algo como lo siguiente haría el truco:
bash-3.2$ for f in *.jar
do
result=$(jar tf $f | grep '/DBObject.class$')
[ -n "$result" ] && echo "$f contains $result"
done
mongodb-api-2.6.3.jar contains com/mongodb/DBObject.class
bash-3.2$
Se podría inventar algo similar en Windows utilizando un bucle FOR
en un símbolo, pero no recuerdo si FINDSTR
establece correctamente el resultado ERRORLEVEL
. Lo que sigue debe trabajar no está completamente seguro de la sintaxis:
C:\Directory\Containing\Jars> FOR %I IN (*.jar) DO @(
FOR /F %J IN ('jar tf %I') DO ECHO "%J: %I"
) | FINDSTR /R /C:"/DBObject.class$"
mongodb-api-2.6.3.jar: com/mongodb/DBObject.class
C:\Directory\Containing\Jars>
Si recuerdo, voy a editar esto después llego a una máquina Windows.
cualquier posibilidad de búsqueda recursiva (caso de Windows)? –
Es posible que desee preguntarle esto en 'superuser.com' lugar –
duplicado Posible> http://superuser.com/questions/285793/finding-which-jars-contain-a-file –