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)