How to run a .class file that is part of a package from cmd?
Suppose you did cd C:/projects
and HelloWorld.class
is in C:/projects/com
, then just type:
java com.HelloWorld
Packages are directly related to the expected directory location of the file.
That is, if you have a source file with the package directive of com
, it is expected that the file will live in the com
directory.
In your HelloWorld
example, it would be expected that the HelloWorld.java
file would be stored in the com
directory, like com\HelloWorld.java
When you compile the file, it will create a class file called HelloWorld.class
in the com
directory, like com\HelloWorld.class
This way, when Java goes looking for the com.HelloWorld
class, it would actually be searching it's class path and appending com\HelloWorld.class
to it until it finds your class file or runs out of class path
Example
So, I copied your HelloWorld.java
(with package) example to C:\java\com\HelloWord.java
From the command line, I changed to the C:\java
directory...
C:\java>dir com
Volume in drive C is OS
Volume Serial Number is ####-####
Directory of C:\java\com
09/08/2013 01:55 PM <DIR> .
09/08/2013 01:55 PM <DIR> ..
09/08/2013 01:55 PM 135 HelloWorld.java
Then I compiled the HelloWorld.java
C:\java>javac com\HelloWorld.java
Then I ran it...
C:\java>java com.HelloWorld
Hello World!
You might like to have a read through Packages tutorial
The syntax is:
java -classpath /path/to/package-folder <packageName>.<MainClassName>
So you may try: java com.HelloWorld
which would expect com/HelloWorld.class
file to be present as classpath by default points to the current directory (if not specified).
In case you're in different folder, try specifying classpath:
$ CLASSPATH=/path/to/package-folder/ java com.HelloWorld
Hello World!
$ java -cp /path/to/package-folder/ com.HelloWorld
Hello World!
$ cd /path/to/package-folder/ && java com.HelloWorld
Hello World!
For further explanation, check: How do I run Java .class files?
Run the program from the parent directory of the com directory.
java com.HelloWorld