Search code examples
javajvmjavac

What version of JRE I need to compile with JDK 13.0.2?


I'm figuring out what I have to do in order to get print a "Hello World" into my PC with Java.

The main thing is when I'm compiling the code, and when I want to run it this appears:

IMAGE: Click to see the image

ACTUAL CODE ERROR:

`C:\Users\Pedro\Documents\java>java Myfirst
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: Myfirst has been compiled by a more recent version of the Java Runtime (class file version 57.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)

C:\Users\Pedro\Documents\java>`

So, I see that the problem is the JRE (Java Runtime Enviroment).

My Java Version:

java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) Client VM (build 25.251-b08, mixed mode, sharing)

My Javac version:

javac 13.0.2

In order to fix this, I would like to know:

  1. What version of JRE do I need to compile my program successfully?
  2. If item N°1 is not the problem, How can I solve this?

Solution

  • Starting with Java 11, JRE does not exist anymore. You just need to install JDK and set the path of the bin folder correctly.

    All you need to do is to set the path of the bin folder of JDK 13.0.2 in the environment variable, PATH and move this entry to the top. I also suggest you do it for both, User variables as well as System variables.

    After this, you need to open a new cmd window and then check the version again. Now, you will see that java -version returns JDK 13.0.2.

    Now, compile the program and run it -OR- simply do java Myfirst.java as starting from Java 11, you can run a java file (provided the top most class in the file has main) without compiling.