Kann ich den Klassenpfad verwenden, um eine Datei in einer JAR-Datei zu überschreiben, die gerade ausgeführt wird?

Ich habe eine JAR-Datei, die eine Anwendung sowie Konfigurationsdateien für diese Anwendung enthält. Die Anwendung lädt Konfigurationsdateien aus dem Klassenpfad (mitClassLoader.getResource()) und hat seine Abhängigkeiten vollständig mit den Konfigurationsdateien in der JAR-Datei befriedigt.

Gelegentlich möchte ich, dass die Anwendung mit einer etwas anderen Konfiguration ausgeführt wird (insbesondere, dass die JDBC-URL überschrieben wird, um auf eine andere Datenbank zu verweisen), also erstelle ich eine neue Konfigurationsdatei und speichere sie in der richtigen Verzeichnisstruktur (dh in einer Verzeichnis/config eines Klassenpfadeintrags), und ich möchte so etwas tun:

java -cp new-config:. -jar application.jar

Aber ich kann nicht den Klassenpfad bekommen, um das zu habennew-config Pfadeintrag vor dem Inhalt der Anwendungs-JAR. Ist es hartcodiert, dass der Inhalt der JAR immer das erste auf dem Klassenpfad ist?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage