4 Stimmen

Dependency Walker für Java?

Ich suche nach einem Tool, das die .class-Abhängigkeiten für eine bestimmte Java-Klasse auflistet, um sie auszuführen. So ähnlich wie das, was Dependency Walker für Windows-Anwendungen macht.

Ich kenne einige Tools, aber sie sind übermäßig kompliziert oder passen nicht ganz, darunter

Irgendwelche Vorschläge? Danke im Voraus!!

3voto

meriton Punkte 65030

Die JVM lädt nur Klassen, die tatsächlich im Programm referenziert werden. Daher wird es Ihnen wahrscheinlich nicht gelingen, den Speicherverbrauch zur Laufzeit durch das Beschneiden der Abhängigkeiten zu verringern. Wenn Sie jedoch das Programm verkleinern möchten, um die Bereitstellung zu erleichtern, können Sie dies verwenden, um festzustellen, welche Klassen tatsächlich benötigt werden: Führen Sie einfach die Anwendung mit aktiviertem Classloading-Protokollieren des VM aus, und die Protokolldatei listet alle verwendeten Klassen auf.

Zum Beispiel für die Sun JVM würde man den VM-Parameter -verbose:class hinzufügen, d.h. starten Sie Ihre Anwendung wie folgt:

java -verbose:class -cp thejarfiles package.Main Password

und analysieren Sie das Protokoll, um alle Klassennamen zu extrahieren.

(Natürlich setzt dieser Ansatz voraus, dass bei jedem Ausführen des Programms die gleichen Klassen verwendet werden, was wahrscheinlich für Ihr "einfaches CLI-Dienstprogramm" der Fall ist)

1voto

Malhelo Punkte 399

Auch wenn Sie bereits eine Antwort akzeptiert haben, möchte ich darauf hinweisen, dass Sie sich vielleicht CodePro AnalytiX ansehen möchten - ein Eclipse-Plugin, das Codeanalyse einschließlich Abhängigkeitsanalyse ermöglicht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X