Zum Inhalt springen

Library - Abhängigkeiten testen...?


Empfohlene Beiträge

Geschrieben

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?!

Geschrieben

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?

Geschrieben

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...

Geschrieben

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ß

Geschrieben

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.

Geschrieben

:upps

Ach ja, an den Kram hatte ich nicht gedacht...

Da lässt sich wohl nicht mehr viel machen. Die Anwendung wurd vor ewigkeiten mit der heißen Nadel gestrickt und ist dementsprechend unübersichtlich und Dokumentationsfrei.

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...