Switching between Java Runtime environments - environment-variables

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.

Related

Javac throwing unsupported error while Eclipse works fine

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.

ant Unsupported major.minor version 52.0

This is driving me nuts.
When running any ant command (even ant -version), I always get the following error on Mac OSX:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/tools/ant/launch/Launcher : Unsupported major.minor version 52.0
I removed and re-installed ant entirely, and still get the same error.
For our company we have to run Java7 to run the command, so I created an alias.
This used to work, I'm not sure what changed.
I see you have java 1.7 installed and post that you have installed Ant 1.10.
Ant 1.10 requires jdk 8
Refer : http://ant.apache.org/
The Apache Ant team currently maintains two lines of development. The
1.9.x releases require Java5 at runtime and 1.10.x requires Java8 at runtime. Both lines are based off of Ant 1.9.7 and the 1.9.x releases
are mostly bug fix releases while additional new features are
developed for 1.10.x. We recommend using 1.10.x unless you are
required to use versions of Java prior to Java8 during the build
process.
Try using Ant 1.9.x if you can't use java 8
Here is a list of minimum java version for given ant version

apache ant runs properly but ask me for some other things also

When I use Apache-Ant following :
ant -version
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.0_111\lib\tools.jar
Apache Ant(TM) version 1.10.1 compiled on February 2 2017
However, it works properly but why it shows this and how can I resolve this?
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.0_111\lib\tools.jar
It is because, you have installed JRE while it is required to install JDK.
Please refer System Requirements of Ant
For the current version of Ant, you will also need a JDK installed on your system, version 1.4 or later required, 1.7 or later strongly recommended. The more up-to-date the version of Java , the more Ant tasks you get.
Note: If a JDK is not present, only the JRE runtime, then many tasks will not work.
So, install JDK and
set JAVA_HOME correctly
add %JAVA_HOME%\bin to PATH

How top set java 7 compiler at windows 7

I have installed java 7 on my machine.
java -version shows that:
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
javac -version showing
javac 1.6.0_10
When I am trying to build application using Ant it showing me error of "it is recommended that the compiler be upgraded"
How can I update path of javac to point java 7, my JAVA_HOME and PATH variable contain C:\Program Files\Java\jdk1.7.0_09 and C:\Program Files\Java\jdk1.7.0_09\bin respectively.
Try one of the following:
1) Change the PATH. Set JAVA_HOME before the windows paths. This is because under the windows folder, there is a java.exe that redirects to the last installed jre.
2) Regedit. The key HKEY_LOCAL_MACHINE->SOFTWARE->JAVASOFT->Java Runtime Environment contains the last installed version that the java.exe in the windows folder redirects to. If you change this to the version you want, everything should be ok.

Execution of Java program

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

Resources