Archivo por meses: febrero 2026

Ver la carpeta bin y los archivos .class en Eclipse

Eclipse ofrece lo que llama perspectivas, que son disposiciones concretas de las ventanas y paneles del editor. Las perspectivas se seleccionan en el menú “Window”.

Cuando utilizamos Eclipse Standard Edition para editar nuestros proyectos Java, lo más frecuente es tener activada la perspectiva Java, que es la perspectiva por defecto de la edición estándar de Eclipse.

En esta perspectiva, el panel de la izquierda está ocupado por la vista llamada Explorador de paquetes. El explorador de paquetes no muestra ni la carpeta .bin, en la que solemos guardar los ficheros compilados, ni los ficheros .class, aunque los tuviéramos en otra carpeta.

La siguiente figura muestra la vista del Explorador de paquetes de Eclipse, con un proyecto abierto, donde se puede apreciar que la carpeta bin no se muestra:

Para ejecutar un programa Java, el procedimiento habitual es pichar con el botón derecho del ratón sobre el fichero .java que contiene el método main() y elegir la opción “Run as -> Java application”.

Esto puede llevar a los programadores nóveles a pensar que están ejecutando el fichero .java y eso es un error conceptual importante. Los ficheros .java no son ejecutables, primero hay que compilarlos a bytecode (.class) utilizando el compilador de Java y luego, lo que se ejecuta, es el método main() del fichero .class que lo contenga.

Vamos a explicar cómo activar la visualización de la carpeta .bin y de los ficheros .class. Para ello, hay que mostrar la vista Explorador de proyectos, que la podemos activar desde la opción de menú “Window -> Show View -> Project Explorer“. El resultado será el de la siguiente figura:

Por defecto, esta vista tampoco muestra la carpeta bin ni los ficheros .class. Tendremos que configurar la vista de manera adecuada. Hay que abrir el menú de la vista, que son los tres puntos que se muestran en la barra de herramientas de la vista y elegir la opción denominada “Filters and customization”, como se muestra en la siguiente figura:

Al acceder a esta opción del menú de la vista, se nos ofrece una lista de tipos de elementos para los que podemos activar o desactivar el filtro: si el filtro está activado, ese tipo de elementos no se mostrará en la vista.

Tenemos que asegurarnos de no tener activados los filtros correspondientes a*.class resources y Java output folders, como se muestra en la siguiente figura:

Con esto, ya podremos ver en el explorador de proyectos la carpeta bin y los ficheros .class. Es posible que tengas que refrescar la vista para que se hagan efectivas las opciones de visualización seleccionadas, utilizando la opción de menú “File -> Refresh” (F5).

La siguiente figura muestra el resultado con el proyecto usado en los ejemplos, donde se puede ver la carpeta bin y los ficheros .class dentro de ella.

Ahora puedes hacer la siguiente prueba: borra el fichero .class correspondiente a la clase Java que contiene el método main(). A continuación, vuelve a probar a ejecutar el fichero .java correspondiente. Podrás comprobar que no se puede ejecutar el programa.

Para regenerar el fichero compilado .class, haz cualquier modificación en el fichero fuente .java y vuelve a guardarlo en el disco. Verás que, cuando grabas el fichero .java modificado, Eclipse recompila el proyecto y vuelve a generar los .class. Cuando estamos trabajando con Eclipse, cada vez que modificamos un fichero .java, Eclipse recompila el proyecto.

De modo que, a partir de ahora, cada vez que ejecutes un programa Java, ten bien presente que los ficheros .java no son ejecutables y que es necesario compilar y ejecutar.

Codificación de ficheros fuente en Java

Al compilar ficheros .java, el compilador javac asume que los ficheros tienen una codificación por defecto. En los sistemas Linux o Mac, javac asume que los ficheros están codificados en UTF-8. En Windows, las versiones posteriores a Java 17 también asumen que los ficheros fuente están codificados en UTF-8, pero hasta la versión Java 17 inclusive, javac supone que los ficheros utilizan la codificación de Windows. En España, la codificación que utiliza Windows suele ser Windows-1252.

Esto es así, independientemente de la página de códigos que tengamos activa en el terminal.

Podemos indicar al compilador que utilice una codificación específica para los ficheros fuente .java, utilizando el parámetro -encoding:

javac -encoding UTF-8 *.java

Vamos a ver un ejemplo completo utilizando una variante de programa Hola Mundo, que utiliza caracteres especiales del español y servirá para entender el problema.

Vamos a compilar y ejecutar la siguiente clase Java:

public class Hola {
   public static void main(String[] args) {
      System.out.println("¡Hola, ¿qué tal?, ¡Vaya año llevamos!");
   }
}

Vamos a utilizar, en primer lugar, la siguiente configuración: Windows 10, Windows Terminal con la página de códigos activa en UTF-8, compilación y ejecución con Java 17 y ficheros .java codificados en UTF-8. La salida obtenida es la de la siguiente figura:

Se puede ver que no se reconocen los caracteres especiales del español. Lo que está pasando es que javac 17 asume que los ficheros fuente están codificados en Windows-1252. Y este comportamiento es independiente de la codificación que tengamos activa en el terminal.

Si compilamos con javac 17, utilizando el parámetro -encoding UTF-8, el fichero fuente se interpreta de manera adecuada:

Java proporciona un comando para poder ver el valor de las diferentes variables que usa:

java -XshowSettings:properties -version

La salida del comando anterior, en la configuración indicada, fue la siguiente:

Se puede observar que Java asume que los ficheros están codificados en Windows-1252.

Ahora vamos a utilizar la versión 21 de Java. En el terminal de Windows, vamos a dejar activa la página de código 850 y compilar y ejecutar el mismo programa. La salida es la siguiente:

Observa que ahora la interpretación de los caracteres especiales del español es correcta. Una vez más, independientemente de la codificación activa del terminal, que en este caso no era UTF-8.

Si consultamos las opciones que está utilizando Java 21:

Vemos que ahora Java 21 asume que los ficheros fuente están codificados en UTF-8.

Podemos hacer una última prueba: compilar con Java 21, pero diciéndole al compilador que el fichero Hola.java está codificado en Windows-1252:

Observa que la salida es la misma que obteníamos con Java 17, cuando interpretaba mal la codificación del fichero fuente.

Por tanto, al compilar ficheros fuente codificados en UTF-8, si utilizamos la versión Java 17 o una inferior, tendremos que utilizar el parámetro -encoding UTF-8 para obtener resultados correctos. Si usamos una versión de Java superior a la 17, ya se presupone que los ficheros fuente están codificados en UTF-8 y no será necesario utilizar el parámetro -encoding.

¿Y si estamos trabajando en Eclipse? Bueno, Eclipse proporciona una opción para indicar la codificación de los ficheros fuente y luego se encarga de pasarla al compilador o al entorno de ejecución. La opción la podemos configurar en: “Propiedades del proyecto -> Resource -> Text file encoding“, como se ve en la siguiente figura: