how to determine package name of a class in a jar

2019-09-05 11:13发布

问题:

For example, in the following example of log4j.jar:

to import:

import org.apache.log4j.Logger;

Is package name "org.apache.log4j" determined by the path \org\apache\log4j\Logger.class?

回答1:

Yes, the package name needs to match the path in the jar file (or directory). Otherwise the class cannot be found.

However, you cannot just move the class file around to change the package. It is also encoded into the class bytecode itself. If you want to change it, you need to recompile the class.