Hello,
Background
The reason you are receiving the '
UnsupportedClassVersionError' is because the 'bash' shell is finding the default installed 'java' bundled with MDK (Mandrake) 10. You can find which 'java' or 'javac' (or any command) will be run by bash by entering the following command:
For instance, below is the output I get on my machine when I want to see which java binary will be run:
kate@pioneer:[~]$ which java
/home/kate/jdk.1.5.0.03/bin/java
I suspect yours may be running '/usr/bin/java'. This is the 'Kaffe Virtual Machine' environment and not much good for anything except taking up disk space. It lacks compatibility in many ways with the current releases of Java.
bash: javac comand not found
This is an error being raised by the bash shell, as it cannot locate an executable called 'javac' in the locations specified in your 'PATH' environment variable.
but when i'm copying the hello.java into /java/bin/ and cd to /java/bin/ and typing "./javac hello.java" it is creating hello.class and its working
The bash shell cannot locate the 'javac' binary because you have installed the JDK directly into the root directory. The reason that executing './javac hello.java' works (after you have copied hello.java into that directory and changed directory to that path) is because by placing './' in front of 'javac' overrides your PATH environment variable and instructs bash to search for the binary called 'javac' in the current working directly only, which of course it finds.
Solution
tell me how to run it if the .java file is in some other directory
You need to add '/java/bin/' to your sessions PATH environment variable. To do this enter the command as below:
export PATH=/java/bin/:$PATH
However when you close your shell session or begin a new one you will have to re-export this path. To make this change permanent (so it is set automatically each time you start a new shell session) you need to place this into your '.bashrc' (bash resource) file. This file is located in your home directory. For example my '.bashrc' file is located in the following location '/home/kate/.bashrc'. Simply add the command above to the end of this file.
For future reference
It is bad practice to install software into the root directory on Linux. You should install the JDK (or any software for use by you only) into your home directory. If you want to install something which can be accessed by any other user of the machine you should install it under the '/usr/local/' directory as the root user.
If you want to rectify this you can move the installed JDK into your home directory by issuing the following command:
mv /java /home/<your_user_name>/
Now just change the line you added to the '.bashrc' file to point to '/home/<your_user_name>/java/bin' instead.
Hope this helps,
Kate