I installed Java 1.7.0 in the following folder C:\\Program Files\\Java
. My operating system is Windows XP(Version 2002) with Service pack 3.
The envir
JAVA_HOME
is not necessary if you start java and javac from the command line. But JAVA_HOME
should point to the real jdk directory, C:\Program Files\Java\jdk1.7.0
in your case.
I'd never use the CLASSPATH
environment variable outside of build scripts, especially not global defined. The -cp
flag is better. But in your case, as you do not need additional libraries (rt.jar
doesn't count), you won't need a classpath declaration. A missing -cp
is equivalent to a -cp .
and that's what you need here)
The (I was pretty sure, that a source file needs one public class... or was it one public class at most ?)HelloWorld
class needs to be declared as public
. This actually may be the cause for your problems.
Just remove your "classpath" from you environment variable. Then try running:
java HelloWorld
This should work fine.
put .; at classpath value in beginning..it will start working...it happens because it searches the class file in classpath which is mentioned in path variable.
You are not setting a classpath that includes your compiled class! java
can't find any classes if you don't tell it where to look.
java -cp [compiler outpur dir] HelloWorld
Incidentally you do not need to set CLASSPATH the way you have done.
Java is not finding where your compiled class file (HelloWorld.class) is. It uses the directories and JAR-files in the CLASSPATH
environment variable for searching if no -cp
or -classpath
option is given when running java.exe.
You don't need the rt.jar in the CLASSPATH
, these was only needed for older versions of Java. You can leave it undefined and the current working directory will be used, or just add .
(a single point), separated by ';', to the CLASSPATH
variable to indicate the current directory:
CLASSPATH: .;C:\...\some.jar
Alternatively you can use the -cp
or -classpath
option:
java -cp . HelloWorld
And, as Andreas wrote, JAVA_HOME
is not needed by Java, just for some third-party tools like ant (but should point to the correct location).
It looks that you had done all setup properly but there might be one area where it might be causing problem
Check the value of your "CLASSPATH" variable and make sure at the end you kept ;.
Note: ; is for end separator . is for including existing path at the end