best - java decompiler online
VisualizaciĆ³n de contenidos de un archivo.jar (26)
Nombres de métodos, campos, etc.
Al agregar un jar a un proyecto en un IDE, generalmente puede ver los métodos y nombres de campo, pero no la implementación detallada. NetBeans puede hacerlo, Eclipse probablemente, IntelliJ probablemente, etc. Puede explorar la estructura jar directamente dentro del IDE.
Solo los contenidos
Para cualquier cosa como ver los contenidos, puede usar:
-
jar tvf jarfile.jar
- winzip o cualquier herramienta zip
El código fuente
Para acceder al código fuente, usaría un descompilador como JAD o uno de sus interfaces u otro decompilador. Si el código está ofuscado, entonces ...
¿Cuál sería la forma más fácil de ver clases, métodos, propiedades, etc. dentro de un archivo jar? Estoy buscando algo equivalente al muy útil Lutz Roeder .NET Reflector - para Java
Ampliando la respuesta de Tom Hawtin, puede canalizar la lista para filtrar la clase o archivos deseados:
jar tf my-fat-jar-file.jar | grep filename
Esto debería funcionar en bash / zsh y similares, o eshell de emacs.
Información adicional: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html
Bueno, un archivo jar es solo un archivo zip, así que si lo descomprimes (con tu herramienta de descompresión favorita), obtienes todos los archivos.
Si quieres mirar dentro de los archivos de la clase para ver los métodos, necesitarás una herramienta para eso. Como menciona PhiLho, Eclipse puede hacerlo (de forma predeterminada), y creo que la mayoría de los IDEs de Java son capaces de eso.
Creo que Java Decomplier es su mejor opción que puede descargar desde aquí: http://jd.benow.ca/ Vista previa http://jd.benow.ca/img/screenshot17.png
Eclipse 3.4 JDT
No es la manera más rápida porque primero tienes que arrastrarlo a tu eclipse. Pero tendrá una exploración completa de clase de Java, incluso con descompilación habilitada.
En Eclipse 3.4 hacer
- Arrastre el archivo jar en cuestión a un proyecto Java. Aparece una copia del archivo jar.
- Haga clic con el botón derecho en el archivo jar y elija "Crear ruta" -> "Agregar a ruta de compilación".
- El archivo jar se mueve al nodo "Bibliotecas referenciadas", donde se puede abrir y navegar en el panel Explorador de proyectos.
Si ver el código fuente también es un problema, abre una nueva pregunta.
Para la navegación en el nivel Jar-file (como un archivo zip) uso 7zip que funciona muy bien, y permite ver y editar entradas, lo cual es ideal para la resolución de problemas.
En Mac hay Jarzilla
Establecí la acción predeterminada en Windows para "Abrir con WinZip". Esto hace que sea más fácil administrar archivos JAR como archivos. Incluso puede agregar / eliminar archivos manualmente.
Jad es klunky y ya no se mantiene. Cambié a "Java Decompiler" , que tiene una interfaz de usuario ingeniosa y soporte para nuevas funciones de idioma.
Cada descompilador que he usado, sin embargo, se encuentra con un código que no se descompila con éxito. Para ellos, ayuda comprender el código de bytes Java desensamblado producido por la herramienta estándar JDK, javap .
Lo que uso personalmente es JD-GUI. Es un "descompilador" gratuito, ya que le permite ver el código fuente, las clases y los objetos en las clases, así como también ver la estructura de archivos en el menú de un árbol a la izquierda. Sin embargo, no le permite modificar las clases directamente.
Sitio web de JD-GUI: http://jd.benow.ca/
Normalmente los abro con 7-Zip ... Permite al menos ver paquetes y clases y recursos.
Si tuviera que ver métodos o campos, usaría Jad pero, por supuesto, es mejor confiar en (bueno) JavaDoc ...
Ahora, en algún lugar de SO se mencionaron algunos complementos de Eclipse, para encontrar en qué archivo jar se encuentra una clase, quizás puedan hacer más (es decir, lo que solicitó).
[EDITAR] Referencia al hilo SO. No es lo que se pregunta, sino que de alguna manera se relaciona, por lo tanto es útil: Java: ¿cómo sé qué archivo jar usar dado un nombre de clase?
Podrías probar JarSpy . Hay una versión del complemento IDEA que uso.
Prefiero el navegador JAR , tiene una interfaz simple donde puedes navegar por varios JAR y buscar una clase específica en varios JAR simultáneamente.
Puede abrirlos con la mayoría de las herramientas de descompresión en estos días, luego simplemente obtenga algo como DJ Java Decompiler si quiere ver la fuente.
Puede probar JarNavigator para ver y buscar contenidos de un archivo jar.
Si desea ver qué hay dentro, simplemente cambie el nombre como primera opción a continuación.
F2 & Rename to jarfile.zip
// Usa cualquier descompactador ...jar tvf jarfile.jar
jar tf jarfile.jar
Si entiendo correctamente, quiere ver no solo las clases, sino también los métodos, las propiedades, etc. La única herramienta que sé que puede hacerlo es Eclipse: si agrega un jar a classpath del proyecto, podrá navegar por sus clases con métodos y propiedades usando el explorador de paquetes habitual.
De todos modos, esta es una buena idea para una buena herramienta de Java independiente
Si está en Windows y usa PowerShell y está buscando un archivo en un contenedor, puede hacer:
jar -tf ./[JAR_NAME] | where {$_ -match "[FILENAME]"}
Su IDE también debería apoyar esto. Mi IDE (SlickeEdit) lo llama una "biblioteca de etiquetas". Simplemente agregue una biblioteca de etiquetas para el archivo jar, y debería poder explorar las clases y los métodos de una manera jerárquica.
Una forma de hacerlo es abrir la perspectiva en "Package explorer". Al hacer esto, puede ver la estructura de su jar con detalles de clase. Para esto, verifique la carpeta de la biblioteca en su proyecto usando el explorador de paquetes.
Ventana >> Mostrar vista >> Otro >> Java >> Explorador de paquetes
Otra forma es, puedes usar JarPlug como un plugin de eclipse. Esto funciona en eclipse / springsource
Yo uso JarExplorer o JarVisualizer .
use unzip -l <jar-file-name>.jar
por ejemplo si tiene un archivo jar con el nombre test.jar y luego unzip -l test.jar
mostrará el contenido del archivo jar.
De acuerdo con el manual de descomprimir comando con la opción -l.
lista archivos de archivo (formato corto). Se imprimen los nombres, los tamaños de archivo sin comprimir y las fechas y fechas de modificación de los archivos especificados, junto con los totales de todos los archivos especificados. Si se compiló UnZip con OS2_EAS definido, la opción -l también enumera las columnas para los tamaños de los atributos extendidos (EA) OS / 2 almacenados y las listas de control de acceso (ACL) OS / 2. Además, se muestran el comentario del archivo zip y los comentarios de archivos individuales (si corresponde). Si se archivó un archivo desde un sistema de archivos de un solo caso (por ejemplo, el antiguo sistema de archivos FAT de MS-DOS) y se dio la opción -L, el nombre del archivo se convierte a minúsculas y se le agrega un símbolo de intercalación (^)
Bndtools proporciona un complemento de visor de JAR gratuito para Eclipse.
Agregue el sitio de actualización de Eclipse e instale solo el visor.
java -xf some-j.jar
descomprimirá un archivo JAR.
Use WinRar . Abrirá la estructura de carpetas de manera intacta. También permite la edición en el archivo, preservando las rutas.
Después de todo, un archivo JAR es un archivo ZIP solamente.
Usando el JDK, jar tf
los archivos en el contenedor. javap
te dará más detalles de un archivo de clase en particular.