I was just pushed on board of java.

For an existing jar file log4j.jar (<http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.zip>), I put it under ./lib subfolder, my java source file MyDemo.java is under ./jms/example folder, and I use jms.example as the package name and import log4j classes in my java file: 

```
package jms.example;
import org.apache.log4j.*;

```

When I compile using the following command, I got the error:

```
c:\JDK\bin\javac.exe -cp '.;.\lib\log4j.jar' -d .\classes -g .\jms\example\MyDemo.java

```

error: cannot find symbol
 private final Logger logger;

What's wrong in the above code?

In addition, I'm wondering:
\* Is package name related with file path? for example, I put my java file under jms/example, is this the reason I have to name the package as jms.example?

When I extract other jar files which are provided by 3rd party, the path to class files is jms/example,and the 3rd party example code use jms.example as package name, and it's consistent with class path jms/example, do they have to be consistent?

* When extract log4j.jar, the path to its class files is org/apache/log4j/, then should I have to use "import org.apache.log4j.*" to import the classes? If I still use jms.example as my package name, will the import prepend it to the class path, i.e., it actually becomes jms.example.org.apache.log4j.*?