Ya es muy conocido el problema que ocasiona con los acentos y varios caracteres especiales la ejecución de aplicaciones desde el símbolo del sistema de Windows. Pero he observado que al ejecutar una aplicación con la versión 8 de Java, se resuelve el problema, aunque la aplicación se haya compilado con la versión 7.
Observa los diferentes caracteres que se muestran en esta aplicación que saca por pantalla la parte inicial de la tabla de caracteres:
Ejecutando la aplicación con Java 7:
En cambio, si se ejecuta con Java 8 puedes observar que la segunda mitad de los caracteres cambian:
Esto conlleva que si hemos desarrollado una aplicación para ser ejecutada en el símbolo del sistema, el hecho de ejecutarla con una versión u otra de Java, hará que se muestren correctamente o no los acentos.
Una aplicación tan sencilla como esta, escrita desde el bloc de notas, tendrá resultados diferentes en cada caso, siendo compilada con JDK 7, pero ejecutándose con Java (JRE) 7 u 8:
public class Acentos {
public static void main(String args[]) {
System.out.println("Camión");
}
}
En Java 8 se muestra correctamente el acento:
Por tanto, parece conveniente que las aplicaciones que deban ejecutarse desde el símbolo del sistema utilicen la versión 8 del entorno de ejecución de java (Java Runtime Environment - JRE). Ten en cuenta que la descarga que se hace desde la página de Java www.java.com, es de la versión 7 en el momento de escribir este artículo, por lo que debes asegurarte de descargar JRE 8 desde la web de Oracle. Para que sea lo más sencillo posible, busca en Google "JRE 8" y encontrarás rápidamente el enlace.
En cualquier caso, recuerda que para asegurarte de qué versión de Java estás ejecutando, indica en el símbolo del sistema:
java -version
En los ejemplos mostrados anteriormente se ha indicado de manera explícita la ruta a las diferentes versiones de Java que tengo instaladas, para ver las diferencias, pero en un entorno normal tan sólo se ejecutará el comando "java", por lo que conviene comprobar la versión como acabo de explicar.
Si es Java 7 aparecerá algo como esto (observa el 1.7.x_xx):
Y si es Java 8 (observa el 1.8.x_xx):