Una clase java no puede visualizarse desde línea de comandos como si fuera un archivo de texto, es decir, con comandos como cat,less, more, etc. Para poder ver el contenido de forma legible hay que descompilar previamente la clase:
$ file foo.class foo.class: java class file
Tanto JAVA de Oracle como OpenJDK cuentan con una herramienta llamada «javap» que permite descompilar una o varias classes:
DESCRIPTION
The javap command disassembles one or more class files. Its output depends on the options used. If no options are used, javap prints out the package, protected, and public fields and methods of the classes passed to it. javap prints its output to stdout.
Por ejemplo, para descompilar la clase «foo» que veíamos anteriormente podemos hacerlo del siguiente modo. Primero especificamos la ruta en la que se encuentra la clase y después el nombre:
$ javap -classpath . -c foo
Hay otros parámetros disponibles como por ejemplo mostrar los números de línea, información protegida, tablas de variables locales, información de sistema, etc:
$ javap -help Usage: javap where possible options include: -help --help -? Print this usage message -version Version information -v -verbose Print additional information -l Print line number and local variable tables -public Show only public classes and members -protected Show protected/public classes and members -package Show package/protected/public classes and members (default) -p -private Show all classes and members -c Disassemble the code -s Print internal type signatures -sysinfo Show system info (path, size, date, MD5 hash) of class being processed -constants Show static final constants -classpath Specify where to find user class files -bootclasspath Override location of bootstrap class files