What is the difference between compile time and run time dependencies in Java? It is related to class path, but how do they differ?
Compiletime dependencies are only the dependencies (other classes) which you use directly in the class you're compiling. Runtime dependencies covers both the direct and indirect dependencies of the class you're running. Thus, runtime dependencies includes dependencies of dependencies and any reflection dependencies like classnames which you have in a String, but are used in Class#forName().