jar und dynamiy linking/ jar

Status
Nicht offen für weitere Antworten.

heiner

Mitglied
Hi,

ich hätte mal ne frage zu dem dynamic linking und den jar verzeichnissen.
Ich dachte die ganze zeit, das wenn ich nen jar verzeichnis erstellt habe, alle imports die ich in der class in dem verzeichnis definiert habe, auch in dem jar enthalten sind. Spricht das das Jar fuer sich alleine steht, und ein dynamic liniking nicht mehr erforderlich ist.
Jetzt habe ich hier nen jar erstellt (mit Maven) funktionierte auch, aber wenn ich dann die class (class_A) in dem jar instanziere und auf meine Methode zugeifen (welche wiederum eine class (class_B) instanziert) bekomme ich die fehlermeldung Noclassdefinition found--> class_B konnte nicht gefunden werden.... Also class_B habe ich mit nem import in class_A zugewiesen.


Sorry wenn meine frage total danenben ist und ich völlig falsch liege.
 

Wildcard

Top Contributor
Was meinst du mit jar Verzeichnisen?
Ein import ist übrigens nach dem Kompilieren gar nicht mehr enthalten, sondern lediglich eine Kurzschreibweise für Klassennamen.
 

Wildcard

Top Contributor
Da (wie oben erwähnt) ein import keinerlei Funktion besitzt, wo soll die andere Klasse her kommen wenn sie nicht im gleichen jar liegt und nirgends bekannt gemacht wird?
 

heiner

Mitglied
Hi,

aber ich dachte das wäre der witz an Maven, wenn ich eine dependency deklariere sollte doch eigentlich diese in dem JAR enthalten sein. Oder etwa nicht?

Und wann ist die ander Class (Class_B) in der JAR datei? Nur dann wenn beide die gleiche package x.y.z aufweisen?
 

heiner

Mitglied
Ich definiere in meinem pom der class_A die abhängigkeiten, in diesem fall zur Class_B und führe dann eine compile, package und install mit Maven durch. Naja und ich hatte halt angenommen das in dem JAR dann auch class_B enthalten ist. Aber dem ist anscheinend net so...
 

Wildcard

Top Contributor
Ich habe Maven ehrlich gesagt nie selbst verwendet (wir haben noch ANT), aber AFAIK werden Dependencies zunächst mal nur zur Compile-Zeit aufgelöst, das Packaging ist davon unbetroffen.
 

heiner

Mitglied
hmm, nochmal zu der andern frage:
Und wann ist die ander Class (Class_B) in der JAR datei? Nur dann wenn beide die gleiche package x.y.z aufweisen?

stimmt das oder liege ich da auch wieder falsch?
 

heiner

Mitglied
uhi und nochwas:
Wenn die abhänigkeiten zweischen meine classen zur compile zeit aufgelöst werden, dann sollte doch erstrecht kein problem bestehen. Denn compelieren kann ich ja mit Maven..... Irgendwie stehe ich jetzt ganz auf dem schlauch...
Wenn ich ganz normal mit javac ne programm compeliere, dann weden doch zu diesem zeitpunkt die abhänigkeiten zumindest überprüfet, erst wenn ich dann eine abhänige class in meiner gerade kompeliereten class aufrufe kommt doch der ClassLoader in spiel oder??
 

heiner

Mitglied
Hi nochmal,

hab meinen denkfehler gefunden, hatte total vergessen das ich jar-with-dependencies plugin bei Maven ansprechen muss... verdammt ;)
 
Status
Nicht offen für weitere Antworten.

Oben