PDA

View Full Version : JAVA 1.6: Dynamischer JAVA-Classpath



MR-BN
10-10-12, 14:06
Hallo zusammen

Wir möchten für JAVA Programme das Bibliothekslistenkonzept der AS/400 auf
das IFS abbilden.
Dabei wird es einen Hauptordner geben, der Unterordner beinhaltet, die als
Namen die verschiedenen Bibliotheken der aktuellen Bibliotheksliste
verwenden, beispielsweise: /Hauptordner/Bibliotheksname/.

Um das ganze dynamisch zu gestalten bietet JAVA die Möglichkeit, den
Classpath mit einem Wildcard zu setzten. Diese Möglichkeit wird hier
beschrieben:
Setting the class path (http://docs.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html)
.
Damit wird es ermöglicht, dass der Pfad auf keine bestimmte JAR-Datei
verweist, sondern in einer bestimmten Reihenfolge alle JAR-Dateien nach
der jeweiligen Klasse durchsucht, die benötigt wird.

Unter Windows kann der Classpath mit dem * auch ohne weiteres verwendet
werden. Auf der AS/400 hingegen, kommt die Fehlermeldung, dass die Klasse
nicht gefunden wurde.

Als JAVA-Version wird JAVA 1.6 vorrausgesetzt.

Der derzeitige Classpath wurde mit CHGENVVAR gesetzt und ist wie folgt
aufgebaut:
".:/Hauptordner/Bibliothek1/SW/*:/Hauptordner/Bibliothek2/SW/*:/Hauptordner/Bibliothek3/SW/*".

Die Pfade wurden bereits mit einer statischen Angabe erfolgreich getestet.

Weiß jemand eine Lösung

Grüße

Ralf Reetmeyer

BenderD
10-10-12, 15:57
... wenn das alles stimmt, was du annimmst, dann ist das ein Bug.
... besser wäre es allerdings den classpath beim starten der JVM als parameter mitzugeben
... noch besser wäre es das mit der LIBL Idee bleiben zu lassen. doppelte classes im classpath gibt immer Huddel

Falls es um RPG - JNI - Java calls geht, kann das ebensogut ein feature sein.

D*B

Fuerchau
10-10-12, 17:44
Verlass auf die Funktion ist sowieso nicht:

The order in which the JAR files in a directory are enumerated in the expanded class path is not specified and may vary from platform to platform and even from moment to moment on the same machine. A well-constructed application should not depend upon any particular order. If a specific order is required then the JAR files can be enumerated explicitly in the class path.