1
resposta

Erro ao compilar a classe Programa

Estou no inicio do curso e ao compilar o primeiro programa ja da esse erro no CMD. Ja reinstalei O JRE/JDK O erro persiste

C:\Users\RT\Desktop\cursoJAVA>java Programa Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: Programa has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

1 resposta

Bom dia Felipe, suas versões do java estão bagunçadas, por isso a mensagem.

Aqui você pode ver as versões que estão atualmente liberadas/deprecadas: https://en.wikipedia.org/wiki/Java_class_file#General_layout

  • Java SE 11 = 55 - Versão usada na compilação
  • Java SE 10 = 54
  • Java SE 9 = 53
  • Java SE 8 = 52 - Versão usada na leitura

Uma forma de você validar é fazer a compilação direto pelo java e javac na mesma pasta:

Compilando: /usr/lib/jvm/jdk1.8.0_152/bin/javac Programa.java

Executando: /usr/lib/jvm/jdk1.8.0_152/bin/java Programa

O Programa.java

public class Programa {

    public static void main(String[] args) {
        System.out.println("Classe rodada pelo cmd");
    }

}

Programa.java

Você pode verificar a versão do java e javac na sua máquina da seguinte forma (no cmd):

  • java -version
  • javac -version