Finde den minimal notwendigen Java Klassenpfad

8

Gibt es ein Tool, um nicht benötigte JAR-Dateien zu erkennen?

Sagen Sie zum Beispiel, dass ich myapp.jar habe, das ich mit einem Klassenpfad starten kann, der hibernate.jar, junit.jar und easymock.jar enthält. Aber eigentlich funktioniert es nur mit Hibernate.jar, da der Code, der junit.jar aufruft, nicht erreichbar ist.

Mir ist klar, dass Reflexion die Dinge komplizieren könnte, aber ich könnte mit einem Werkzeug leben, das die Reflexion ignoriert. Abgesehen davon scheint es ein relativ einfaches Problem zu sein.

Wenn es kein solches Tool gibt, welche Best Practices für die Entscheidung, welche Abhängigkeiten benötigt werden? Es scheint mir, dass es ein allgemeines Problem sein muss.

    
Rasmus Faber 16.09.2008, 19:59
quelle

4 Antworten

3

Dies ist in einem System, das Reflektion verwenden könnte, nicht möglich.

Das heißt, ein statisches Analyse-Tool könnte einen ziemlich guten Job machen, wenn Sie keine Reflexion verwenden.

    
Bill K 16.09.2008 20:03
quelle
2

Haben Sie sich den Dependency Finder angesehen?

Ссылка

Eine praktische Liste der meisten anderen verfügbaren Java-Abhängigkeitstools ist auch auf dieser Site verfügbar.

    
shadit 16.09.2008 21:00
quelle
1

Ich habe

verwendet

Ссылка

und fand es ziemlich gut.

Sie werden auch herausfinden, ob Sie eine Reflexion leicht gebrochen haben, wenn Sie eine gute Anzahl von Unit / Acceptance Tests haben:).

    
triggerNZ 16.09.2008 21:03
quelle
0

Etwas, das zu Bill Ks Antwort hinzugefügt werden kann: Sie könnten die Reflektion überhaupt nicht verwenden, aber die JARs, die Sie verwenden, könnten es sein. Ich erinnere mich, dass ich mit xalan & amp; Xerces, bei denen zur Laufzeit eine ClassNotFoundException ausgelöst wurde.

    
Nikolai Prokoschenko 16.09.2008 21:04
quelle

Tags und Links