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:
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.
Why do you have different versions of JDK and JRE? That looks strange.
I would do this:
1) Uninstall all JDKs and JREs.
2) Install JDK 8 and during installation tell
the installer not to install a standalone JRE,
browser plugin or anything like that. Just JDK.
That's my general recommendation to stay out of troubles.
This way you will have just a JDK which provides also a JRE
(then the JRE java will be of the same version as the compiler javac).
On your question:
A) Either run it with the same JRE version (13.0.2) as the JDK version you complied it with.
B) Or when compiling specify java -source 1.8 MySourceFile.java
Then you will be able to run it with JRE 1.8
But before playing with A) and B) just follow the general recommendation first.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With