Pouvez un programme dépend d'une bibliothèque lors de la compilation, mais pas d'exécution?

Je comprends la différence entre l'exécution et au moment de la compilation et comment faire la différence entre les deux, mais je ne vois pas la nécessité de faire une distinction entre la compilation et à l'exécution dépendances.

Ce que je suis d'étouffement sur est celle de savoir comment un programme dépend pas sur quelque chose lors de l'exécution qu'il dépendait lors de la compilation? Si mon application Java utilise log4j, alors il a besoin de l'log4j.jar fichier pour compiler (mon code d'intégration avec des et de l'invocation de méthodes membres de l'intérieur de log4j) ainsi que de l'exécution (mon code n'a absolument aucun contrôle sur ce qui se passe une fois que le code à l'intérieur log4j.jar est couru).

Je suis en train de lire sur la résolution des dépendances des outils tels que le Lierre et Maven, et ces outils font clairement la distinction entre ces deux types de dépendances. Je ne comprends pas le besoin.

Quelqu'un peut-il donner un simple, "Roi de l'anglais"-explication de type, de préférence avec un exemple que même un mauvais sap comme moi pouvait comprendre?

  • Vous pouvez utiliser la réflexion, et de l'utilisation des classes qui n'étaient pas disponibles au moment de la compilation. Pensez à "plugin".
InformationsquelleAutor IAmYourFaja | 2011-08-15