After searching all over the web, I am not able to solve my problem of Java execution. When using command prompt to run my "first" Java program, I am faced with the errors of Unsupported class version and Main class not found. Program will exit.
I have 2 versions of Java on my PC, Java 6 and 7. I have set the path of the JDK 7 in path environment variables and classpath too. I know the problem: I have javac -version as 1.7.02 and java version as 1.6.02, but how to change it and fix the problem?
Please elaborate the problem in easy and understandable language!
You have to run your program with the same or higher version of java that yxou compiled it with.
So you can either compile your program with Java 6 on your PC or run it with java 7.
To run your program with java 7 just use the complete path to your java runtime environment. for instance
c:\jdk7\bin\jawaw.exe yourprogram
How to tell your system which Java version to use is explained here:
Why does java -version returns old version?
JRE [java command] come with your JDK 1.7, and you must change your JAVA_HOME variable to your JDK 1.7 folder.for this work read this article
Related
folks!
I have 2 separate servers on Linux for Jenkins and Sonarqube. The code is written in Java 1.8 and can be compiled using Jenkins. Everything works fine.
It fails at the SonarQube step because our SonarQube uses Java 11, and it fails with this error.
ERROR: Error during SonarScanner execution java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation 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
How can I fix this?
You have to run the sonar scanner with at least Java 11, no matter what version of Java your application supports.
Two years ago I had a similar issue. I don't know if your app and sonarqube should run on the same machine (as it was in my case).
If yes, just install both versions of java and set the path of Java 11 to SonarQube settings.
According to sonarqube community, you should do the following:
Edit conf\wrapper.conf, specifically the wrapper.java.command to following:
wrapper.java.command=C:\Program Files\Java\open jdk-11.0.2\bin\java
#wrapper.java.command=java
I tried to use cmd prompt to execute my java file but I got this error that says
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: MovingObject has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 52.0
but when I tried executing my java file on eclipse it works perfectly fine, its just that I want to try and run it to the command prompt to see if both ways works. Tried searching about the problem but most of the other problems is way back from long ago.
The problem was that my computer was confused as to what JRE to use. I have manually installed JDK and JRE 8 before.
So when I tried checking it through cmd.
javac -version is Java 16
while, java -version is Java 8
So, I uninstalled my Java 8 since I have installed JDK 16 and JRE version 16 on my eclipse which confuses my computer as to what version to use. That's pretty much it.
This question already has answers here:
javac cannot be run, and furthermore does not seem installed
(4 answers)
Closed 4 years ago.
Well i tried to start with react native when suddenly i got an error that java compiler couldn't be found. So i searched and find something about java_home which i fixed but still the compiler isnt found. After testing in the cmd prompt javac -version couldn't it recognise any javac. Then i looked in the bin folder in java jre and realised that the javac doesnt even exist. Is this some kind of bug or should i reinstall it or something.
enter image description here
The image shows a JRE. javac is java compiler, if it's required you need to install JDK.
Try installing jdk as jre is for executing already compiled code. But for a whole new compilation you require a jdk that is development tools of java development toolkit. As javac.exe is a part of jdk not jre.
I have created a program in Java which edit/read a XML file. I have done it using Javax.xml package and org.w3c package. The program runs fine on JRE 1.6 but the same code when runs on JRE 1.1 throws exception of java.lang.noclassdeffounderror javax/xml/parsers/documentbuilder. I did my own investigation in this issue and got to know that Javax package is not provided in JRE 1.1. Is there a way I can run this program on JRE 1.1, by somehow able to include or reference this package using a jar or any other thing possible?
Thanks,
Amit Singh
I have both Java 6 and Java 7 installed in my computer running Windows XP sp3. I have entered path in the environment variables (PATH, JAVA_HOME) in My computer-> Properties. But when I give
java -version
I still get the following text
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build
1.7.0_09-b05) Java HotSpot(TM) Client VM (build 23.5-b02, mixed mode, sharing)
However, when I try
javac -version
I get
javac 1.6.0_03
How can I change the runtime from Java 7 to Java 6? When I compile my program in eclipse using ant, I get the following
Warning: java\util\List.class(java\util:List.class): major version 51
is newer than 50, the highest major version supported by this
compiler. [javac] It is recommended that the compiler be upgraded.
Path has the JRE first, thus the java -version and the JDK second, thus the javac -version. Check your PATH variable.
If you want the JDK version, put it first on the PATH.
If am not mistake java 7 windows installer of JDK or JRE will copy java.exe to some windows common path. I don't remember exactly the path but maybe C:\Windows\System32. Try this on command line to know where is the location of java.exe:
where java
Update your path precedence accordingly.
When you install Java (JRE), it copies java.exe into C:\Windows\System32, in addition to installation directory under C:\Program Files. But when you install full JDK (with compiler), it doesn't do that for javac.exe. When you have multiple versions of java, the last installed one will be called when you type java in command line.
Use full paths if you need to have multiple Java versions, you will always have problems trying to use unqualified java in command line. Alternatively, re-install JRE 7 - that will force default java to be V7.