Question: I am not very experience with java and this is driving me crazy. I wrote a java program `FileManagement` and I need to run it from the command line.

I can compile it from the command line with `javac FileManagement/*.java` which will create all the classes in that folder but when I try `java FileManagement.Main` it says :

> 
> Exception in thread "main" java.lang.NoClassDefFoundError:
>  FileManagement/Main
> 
> 
> 

The thing is that I have tried this same procedure in a remote computer and it is working fine. It is not working on mine.

Answer: 
Guys let's understand the syntax of it.

1. If class file is present in the Current Dir.

**java -cp . fileName**
2. If class file is present within the Dir. Go to the Parent Dir and enter below cmd.

**java -cp . dir1.dir2.dir3.fileName**
3. If there is a dependency on external jars then,

**java -cp .:./jarName1:./jarName2 fileName**

Hope this helps.
(This is the KISS answer.)

Let's say you have several .java files in the current directory:

```
$ ls -1 *.java
javaFileName1.java
javaFileName2.java

```

Let's say each of them have a `main()` method (so they are programs, not libs), then to compile them do:

```
javac *.java -d .

```

This will generate as many subfolders as "packages" the .java files are associated to. In my case all java files where inside under the same package name `packageName`, so only one folder was generated with that name, so to execute each of them:

```
java -cp . packageName.javaFileName1
java -cp . packageName.javaFileName2

```