DarthShader
Erfahrenes Mitglied
Hallo zusammen,
ich habe eine Frage bezüglich JAR-Dateien und dem Classpath - diese Geschichte verwirrt mir gerade total. Es gibt folgende recht simple Ausgangssituation:
Ich verwende ein Ant-skript um einen Release keiner Software zu builden. Das Ant Skript erstellt auch eine JAR-Datei (einer Rich Client Anwendung). Unterhalt des JAR-Verzeichnisses gibt es ein Verz. "lib", darunter sind versch. Bibliotheken, wie z.B. iText oder PDFBox, das sieht dann so aus:
Die libs liegen also extern auf der Platte, nicht in der JAR-Datei meines Programmes. Das Manifest sieht so aus:
Das klappt auch wunderbar. Nun möchte ich aber eine andere Datei, eine context.xml Datei zum Konfigurieren des Spring-Kontextes genauso einbinden. Diese liegt dann hier:
Und den Classpath in der Manifest habe ich so erweitert:
Wenn ich nun versuche, die Datei context.xml mit Spring zu verwenden:
dann kann Spring die Datei einfach nicht im Classpath entdecken. Ich habe es zwar nicht ausprobiert, aber ich bin relativ sicher, dass wenn ich sie mi in die Jar-Datei "MeinProgramm.jar" integriere, dann würde Spring sie finden.
Deshalb die Frage: wo ist der Unterschied? Warum werden die libs (.jar) außerhalb der MeinProgramm.jar gefunden, aber die conext.xml nicht? Ist es generell einfach so, dass nur .jar Dateien so geladen werden können (also nicht in der JAR enthalten, aber über den Clathpath)?
Über Eure Hilfe würde ich mich sehr freuen
Vielen Dank!
ich habe eine Frage bezüglich JAR-Dateien und dem Classpath - diese Geschichte verwirrt mir gerade total. Es gibt folgende recht simple Ausgangssituation:
Ich verwende ein Ant-skript um einen Release keiner Software zu builden. Das Ant Skript erstellt auch eine JAR-Datei (einer Rich Client Anwendung). Unterhalt des JAR-Verzeichnisses gibt es ein Verz. "lib", darunter sind versch. Bibliotheken, wie z.B. iText oder PDFBox, das sieht dann so aus:
Code:
.\MeinProgramm.jar
.\lib\iText\iText.jar
.\lib\JavaComm\comm.jar
[...]
Die libs liegen also extern auf der Platte, nicht in der JAR-Datei meines Programmes. Das Manifest sieht so aus:
Code:
[...]
Class-Path: lib\iText\iText.jar lib\JavaComm\comm.jar
Das klappt auch wunderbar. Nun möchte ich aber eine andere Datei, eine context.xml Datei zum Konfigurieren des Spring-Kontextes genauso einbinden. Diese liegt dann hier:
Code:
.\MeinProgramm.jar
.\etc\context.xml
Und den Classpath in der Manifest habe ich so erweitert:
Code:
[...]
Class-Path: lib\iText\iText.jar lib\JavaComm\comm.jar etc\context.xml
Wenn ich nun versuche, die Datei context.xml mit Spring zu verwenden:
Code:
new ClassPathXmlApplicationContext( "context.xml" );
dann kann Spring die Datei einfach nicht im Classpath entdecken. Ich habe es zwar nicht ausprobiert, aber ich bin relativ sicher, dass wenn ich sie mi in die Jar-Datei "MeinProgramm.jar" integriere, dann würde Spring sie finden.
Deshalb die Frage: wo ist der Unterschied? Warum werden die libs (.jar) außerhalb der MeinProgramm.jar gefunden, aber die conext.xml nicht? Ist es generell einfach so, dass nur .jar Dateien so geladen werden können (also nicht in der JAR enthalten, aber über den Clathpath)?
Über Eure Hilfe würde ich mich sehr freuen
Vielen Dank!