Exception in thread Unsupported major.minor version 52.0, otra vez Java.

Este error no es nuevo para mi, por ejemplo Angry IP Scanner dejó de funcionar, pero supuse que era algún problema con alguna actualización. Algo que es muy frecuente en una distribución rolling release.

El colmo fue que ayer intenté instalar el IDE de Arduino y al intentar ejecutar me di cuenta de dos cosas, que el software esta escrito en Java y que como es tradición trae sus problemas.

El error completo es como este:

Picked up JAVA_TOOL_OPTIONS: 
Exception in thread "main" java.lang.UnsupportedClassVersionError: processing/app/Base : Unsupported major.minor version 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:808)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:443)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:65)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:349)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:348)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:323)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)`

El problema es la versión de Java.

El mismo mensaje de error menciona un problema de versión de Java. Así que me fui a buscar información por ese lado. Dí con la página del Wiki de Arch (en Manjaro no encontré algo equivalente) relacionada con Java.

Lo primero es identificar cuantas versiones de Java están instaladas y me llevé una sorpresa.

Al ejecutar el comando archlinux-java status me indicó que tenía instalado en mi equipo no una, ni dos, ¡si no tres versiones de Java!.

Available Java environments:
   java-11-openjdk
   java-7-openjdk/jre (default)
   java-8-openjdk

La verdad es que no tenía idea de este dato, pero en fin.

El problema se soluciona cambiando el default a una versión más reciente. Con la versión 8 funciona, con la versión 11 también. Así que dejé esta última con el siguiente comando.

sudo archlinux-java set java-11-openjdk
Arduino IDE trabajando después de ajustar Java. Unsupported major.minor version 52.0
No que no. ¡Listo y funcionando!

Hecho esto, el IDE de Arduino funciona y también Angry IP Scanner así que se puede dar este problema como solucionado.

¡Me encantaría saber que opinas!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.