JNI de error: Clase A ha sido compilado por una versión más reciente de la ejecución de Java

Revolución para Monica:

Tengo un archivo MyFirstProgram.java que contiene dos clases. Me acaba de modificar la ruta de acceso y trató de probar el archivo con javay javac.

public class MyFirstProgram{
    public static void main(String[] args){
        System.out.println("Hello ! World :)");
    }
}

Sin embargo, me vuelve:

C:\Users\antoi\Documents\Programming\Julien>java MyFirstProgram.java
Error: Could not find or load main class MyFirstProgram.java

C:\Users\antoi\Documents\Programming\Julien>javac MyFirstProgram.java
'javac' is not recognized as an internal or external command,
operable program or batch file.

Aquí es el Camino:

introducir la descripción de la imagen aquí

Sólo funciona cuando llamo javac directamente en la carpeta:

C:\Users\antoi\Documents\Programming\Julien>"C:\Program Files\Java\jdk-11.0.2\bin\javac" MyFirstProgram.java

C:\Users\antoi\Documents\Programming\Julien>java MyFirstProgram
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: MyFirstProgram 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)

Sin embargo, no se puede mostrar el mensaje javay pone de manifiesto que hay una UnsupportedClassVersionError. Yo entiendo de otros mensajes es mi ejecución de Java y Medio ambiente para los javacque podría no estar de acuerdo con el javacomando. Cuáles son los pasos a seguir para que pueda imprimir el mensaje Hello World?

Jorn Vernee:

Por lo tanto, el problema es que se está compilando con la javacde JDK 11, y luego tratar de correr con Java 8. Desde la java.exe de %JAVA_HOME%\binque se está recogido antes C:\Program Files\Java\jdk-11.0.2\bin. Y, supongo que no puede encontrar javacdebido a que ha añadido C:\Program Files\Java\jdk-11.0.2\bina la ruta, sin necesidad de reiniciar su cáscara, que medio que no se vuelve a cargar el camino.

Para resolver esto, usted debe quitar la C:\Program Files\Java\jdk-11.0.2\binentrada de la ruta, y luego actualizar la JAVA_HOMEvariable de entorno a punto a C:\Program Files\Java\jdk-11.0.2su lugar. A continuación, reinicie su concha y se debe recoger C:\Program Files\Java\jdk-11.0.2\binexpandió de %JAVA_HOME%\bin.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=210607&siteId=1
Recomendado
Clasificación