Gabi und Sascha
Tags - Kategorien : Alle | Berlin | Bücher | Fotografie | Java | Linkhalde | Weichware | Verfassung

Nicht nur Administratoren hat Sun in die immer schneller am Horizont erscheinende Java 6 Version, aka Mustang, eine sehr erleichternde Neuerung eingebaut: Classpath-Wildcards. Anstelle einer fehleranfälligen, endlos langen Liste von JAR-Artefakten, welche dem -classpath Parameter der JVM übergeben werden muss, nur noch -classpath lib/'*'.

Die Quotes um den Stern schützen dieses Sonderzeichen vor der Interpretation durch die Shell. Der Stern selbst bewirkt, dass alle JARs aus dem angegebenen Verzeichnis, vor dem Aufruf der main-Methode für die Classloader erreichbar sind. Die ebenfalls sehr nützliche ** Semantik aus ANT, die das rekursive durchsuchen von Verzeichnissen bewirkt, wird nicht unterstützt.

Die mehrere tausend Zeichen langen, schwer zu wartenden, Classpathorgien in Skripten sollen damit der Vergangenheit angehören. Dabei ist nicht garantiert, in welcher Reihenfolge die JARs, und nur diese, angezogen werden. Dies spielt für eine sauber entworfene Anwendung allerdings auch keine Rolle.

Einen ähnlichen Mechanismus haben wir uns vor einigen Jahren bei einem WebObjects Projekt gewünscht, als der Kommandozeilenaufruf durch die WO Aufrufsemantik unter Windows auf mehrere tausend Zeichen angeschwollen ist. Leider unterstützte Windows 2000, wie der Name schon sagt, nur 2000 Zeichen für die Kommandoumgebung und wollte unser Programm auf Teufel komm raus nicht ausführen. Erst die Installation des Windows XP cmd hat uns aus dieser Miesere befreit.