aspose file tools*
The moose likes Java in General and the fly likes Use different JDK versions Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Use different JDK versions" Watch "Use different JDK versions" New topic
Author

Use different JDK versions

Sudhir Srinivasan
Ranch Hand

Joined: Jun 08, 2011
Posts: 90

Hi,

To install NetBeans IDE 6.9.1 requires JDK 6.0 update 13 or later, as my existing IDE 6.0.1 does not support Spring, hibernate etc.

I have JDK 1.5 already installed on my Windows XP (SP 2) machine. My question is:

Do I have to uninstall this before installing JDK 1.6.0_22? OR can I have both versions of the JDK installed in, say, different paths where

JDK 1.5 is in the existing C:\Program Files\Java\jdk1.5.0_06\ directory and
JDK 1.6 is installed in the D:\<myname>\Java\jdk1.6.0_22\ directory (new path)

and use the version of java from the respective directories?

If this is possible, should I just add the new path leading to the bin directory to the PATH environment variable (under System variables of My Computer > Properties > Advanced > Environment variables) for Windows to find the java executables of the JDK concerned.

My existing environment variables (in System variables) are:

CLASSPATH .;C:\Program Files\Java\jre6\lib\ext\QTJava.zip

JAVA_HOME C:\Program Files\Java\jdk1.5.0_06\

PATH C:\oracle\product\10.2.0\db_1\bin;%CommonProgramFiles%\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program
Files\QuickTime\QTSystem\;C:\Program Files\Java\jdk1.5.0_06\bin

with the JDK 1.5 bin directory highlighted.

Would much appreciate a quick reply from the forum experts.

Thanks,
Sudhir



Joanne Neal
Rancher

Joined: Aug 05, 2005
Posts: 3561
    
  15
You can install as many JDKs as you want. The default install directory is different for each version so you can install them in
C:\Program Files\Java\jdk1.5.0_06\ directory
and
C:\Program Files\Java\jdk1.6.0_22\ directory
or you can install them in other directories of your choosing.
If you want to compile and run programs from the command line then you will need to add the bin directory to your PATH environment variable but Windows will use the first javac/java executable it finds. Other than bu including the full path in the command line, you can't choose which javac/jave will be used.

However if you are using Netbeans, you can configure Netbeans with the available JDKs and then select whichever JDK you want to use for each individual project. Netbeans help should tell you how to do this.


Joanne
Sudhir Srinivasan
Ranch Hand

Joined: Jun 08, 2011
Posts: 90

Thank you for your response Joanne. Your clarification
Joanne Neal wrote:
You can install as many JDKs as you want. The default install directory is different for each version so you can install them in
C:\Program Files\Java\jdk1.5.0_06\ directory
and
C:\Program Files\Java\jdk1.6.0_22\ directory
or you can install them in other directories of your choosing.

helped me in successfully installing the new JDK in addition to the existing JDK 1.5.

Also, as suggested
Joanne Neal wrote:
However if you are using Netbeans, you can configure Netbeans with the available JDKs and then select whichever JDK you want to use for each
individual project. Netbeans help should tell you how to do this.

I've configured Netbeans 6.9 to the JDKs installed using the Java platform manager as described in Netbeans help.

I also want to use the command line to compile and run programs.
Joanne Neal wrote:
If you want to compile and run programs from the command line then you will need to add the bin directory to your PATH environment variable but
Windows will use the first javac/java executable it finds. Other than bu including the full path in the command line, you can't choose which javac/jave
will be used

So, I added the path to the bin directory (of the newly installed JDK 1.6) to the PATH environment variable.

I prefixed the JDK 1.6 bin directory

C:\oracle\product\10.2.0\db_1\bin;%CommonProgramFiles%\Microsoft Shared\Windows
Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program
Files\Java\jdk1.6.0_22\bin
;C:\Program Files\Java\jdk1.5.0_06\bin

to the existing JDK, as highlighted.

However, compiling and running the program from the command line

Step 1: change to the bin directory

Step 2: change to the source directory

Step 3: compile the program

Step 4: on compilation, change to the classes directory

Step 5: list the .class files in the directory

Step 6: run the program

throws the Exception in thread "main" java.lang.NoClassDefFoundError: TestSortStrings (wrong name: testMore/myPrograms/TestSortStrings).

A little bit of research on google showed http://docs.oracle.com/javase/tutorial/getStarted/problems/index.html this runtime error is due to java's inability to find the .class files. Initially, I tried running the program from the source directory which threw the same exception. Given that the source & class directories are separate, steps 4,5 and 6 done as per the suggestions in the link, without success.

While the solution seems to be centered on changing the CLASSPATH ref: http://docs.oracle.com/javase/tutorial/getStarted/problems/index.html, http://docs.oracle.com/javase/tutorial/java/package/managingfiles.html, I'm not sure of the same given the forum's http://www.coderanch.com/t/412282/java/java/we-change-tha-java-version suggestions.

My current settings in Environment variables > System variables is

CLASSPATH .;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
JAVA_HOME C:\Program Files\Java\jdk1.5.0_06\
PATH C:\oracle\product\10.2.0\db_1\bin;%CommonProgramFiles%\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Java\jdk1.6.0_22\bin;C:\Program Files\Java\jdk1.5.0_06\bin

Please help in resolving this.

Many thanks,
Sudhir



John Jai
Bartender

Joined: May 31, 2011
Posts: 1776
Is the TestSortStrings class inside the package testMore\myPrograms? Then move to the src folder and execute the below command
java testMore\myPrograms\TestSortStrings

For example if a class named Test is inside the package com, then I use below commands to compile and run them.


code - Test.java

Sudhir Srinivasan
Ranch Hand

Joined: Jun 08, 2011
Posts: 90

Hi John,

Thank you for your reply. I was so focused on CLASSPATH and PATH environment variables that I forgot I was not allowing the compiler and the JVM to construct the path to the .class files [which it does by adding the package (& the classes thereof) to the classes directory], at compile and runtime.

This is aptly shown
John Jai wrote:Is the TestSortStrings class inside the package testMore\myPrograms? Then move to the src folder and execute the below command
java testMore\myPrograms\TestSortStrings

For example if a class named Test is inside the package com, then I use below commands to compile and run them.


code - Test.java



in your sample code and thereby helped me compile / run my program from the command line successfully!

Many Thanks,
Sudhir
 
Don't get me started about those stupid light bulbs.
 
subject: Use different JDK versions