# Dynamisches Linken?



## xeEEenon (27. Februar 2006)

Hallo,

ich arbeite mich gerade in das Thema "Open Source Lizenzen" ein. Dort werden oft die Begriffe "statisches und dynamisches Linken" verwendet.

Mir ist der Begriff "dynamisches Linken" in Java nur nicht ganz klar. Habt ihr da praktische Beispiele für mich? Ich denke da sofort an die JAR-Dateien, da sie mir equivalent zu den DLLs erscheinen. Ich kann mich aber auch irren 

Gruß

Xen


----------



## Thomas Darimont (27. Februar 2006)

Hallo!

Also der Unterschied zwischen statischen und dynamischen Linken von nativen Bibliotheken ist (IMHO) der, dass beim statischen Linken die der Bibliothekscode beim kompilieren direkt mit dem Objektcode deines Projektes verwoben wird. Bei dynamischen Linken findet, wie der Name schon vernmuten laesst, das linken zur Laufzeit statt. Es wird dann zunaechst die entsprechende Bibliothek (dll) geladen und initialisiert. Anschliessend werden die innerhalb der dll exportierten Symbole und Funktionen ausfindig gemacht und verwendet (aufgerufen).

Verwendet man nun unter Java eine Fremdbibliothek und Typen die innerhalb dieser definiert sind, so stehen diese Informationen in der Klasse welche die Bibliothekstypen verwendete. Es stehen hier aber nicht der Code der anderen Typen/Methoden sondern nur deren Namen... deshalb ist es MHO schwierig bei Java von statischem oder dynamsichen "Linken" zu sprechen. ich denke auch das man dlls nicht mit jars vergleichen kann. Ich meine okay, beide dienen als Codecontainer, aber bei jar Dateien hat man beispielsweise keine Callback-moeglichkeiten um auf das Laden/Entladen eines jars reagieren zu koennen. Weiterhin ist das Zugriffskonzept auf Meta-Informationen verschieden...

Gruss Tom


----------

