Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run a .class file that is part of a package from cmd?

People also ask

How do I view the contents of a .class file?

A simple way to see what String literals are used in a ". class" file is to use the javap utility in your JDK installation to dump the file using the "-v" option. Then grep for text that looks like <String "..."> where ... is the String you are looking for.

How do you run a Java class package?

It is a good practice to use names of packages with lower case letters to avoid any conflicts with the names of classes and interfaces. Now a package/folder with the name animals will be created in the current directory and these class files will be placed in it as shown below. and get the result as shown below.


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

Suppose the file locates at C:/projects/com/HelloWorld and you can try the following ways.

1.java -cp c:/projects com.HelloWorld

2.cd c:/projects
 java com.HelloWorld
(The example 2 is not working in many situation,such as java process.)

if there is no package declaration and there will be a little change.

1.java -cp c:/projects/com HelloWorld

2.cd c:/projects/com
 java HelloWorld
(It's not good with the same reason.)

alternatively,relative path will be ok but has some risk. Last remember put the class file in end of cmd.


When you compile the java code, use -d, in your case, it would be

javac -d . com.HelloWorld.java

After the above command, java compiler generate a folder named "com", under the "com" folder, you will see your HelloWorld.class

Then under the same folder as you run javac, run the following command

java com.HelloWorld