Zum Inhalt springen

Library - Abhängigkeiten testen...?


Haymaker84

Empfohlene Beiträge

Hi,

ich bin Dabei einen Workspace im JDeveloper zu bereinigen. Die Projekte haben alle ziemlich viele Libraries eingebunden, von denen keine Sau weiß, ob sie benötigt werden.

Ich mach das so, dass ich eine Library lösche und dann guck, ob compile noch funtzt.

Jetzt meinte ein Kollege, dass trotzdem probleme zur Laufzeit auftauchen könnten. Kann das theoretisch möglich sein?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Update:

ich habe gerade die Library "ORACLE_JDBC" entfernt. Zu meiner Verwunderung konnte ich das ohne Probleme kompilieren.

Zur Laufzeit hab ich dann natürlich keine DB-Verbindung bekommen.

Jetzt frage ich mich, wie das sein kann... Anscheinend werden Bestandteile der Library in unserem normalen Code verwendet. (sonst würds ja kein Stacktrace geben...) Aber wieso lässt sich dann das ganze Paket überhaupt erst kompilieren?

Der Umstand stellt die Arbeit des bisherigen Tages in Frage!

Gibt es eine bessere Methode, bei den Libraries aufzuräumen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

wieso kompilerts? tja, da bist du in den

class.forName("klasse_als_string"); 

siehe hier reingetappt. wenn der classloader dann sucht kommt wahrscheinlich eine classNotFoundException.

das ist eine stolperfalle. eine andere könnte z.b. reflection sein.

durchsuche den code nach reflection und eben class.forname(). aber ob das dann alles ist, kann ich dir auch nicht sagen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jetzt meinte ein Kollege, dass trotzdem probleme zur Laufzeit auftauchen könnten. Kann das theoretisch möglich sein?!

Sicherlich. Stichwort: Reflections. Der Classpath lässt sich u.a. auch dynamisch erweitern.

Aber wieso lässt sich dann das ganze Paket überhaupt erst kompilieren?

Reflections. Der Treiber wird zur Laufzeit geladen. Beispiel:


Class.forName(" oracle.jdbc.driver.OracleDriver");

Der Compiler merkt hiervon erst mal nichts. Zur Laufzeit hast du natürlich das nachsehen, wenn die entsprechende Bibliothek fehlt.

Gibt es eine bessere Methode, bei den Libraries aufzuräumen?

Gute Frage, vielleicht Maven, wenn man sich das mal durchliest. Wüsste ich aber auch gerne!

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also das löschen und anschließende Kompilieren der Software ist sicherlich nicht der Richtige Weg um heraus zu finden welche Bibliotheken du brauchst. Denn du bist ja inzwischen lebst schon drauf gekommen das klassen erst zu Laufzeit geladen werden. Hinzu kommt das Bibliotheken auch selbst wieder Abhängigkeiten untereinander haben können.

Dir wird wohl initial nichts anderes übrig bleiben als in Dokumentationen nach zu lesen welche Bibliothek welche Abhängigkeiten haben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...