The classpath specifies where to look for class files. Can be specified for execution (java).
A package is a way to qualify the name of a class or group of classes. It also imposes a condition on where the .java and .class files for the class can be. A package name is typically a directory path with all the "/" (or "\") directory separators replaced by "." The fully qualified class name includes the package name, another ".", and then the class name.
A package statement at the beginning of a .java file declares the class to be in the named package. If there is no package statement, the class is in the default package which has no name.