Mam plik JAR zawierający aplikację, a także pliki konfiguracyjne dla tej aplikacji. Aplikacja ładuje pliki konfiguracyjne ze ścieżki klas (przy użyciu ClassLoader.getResource()
) i ma całkowicie zadowalające zależności za pomocą plików konfiguracyjnych zapakowanych do pliku JAR.Czy mogę użyć ścieżki classpath do przesłonięcia pliku w uruchomionym słoiku?
Czasami chcę, aby aplikacja była uruchamiana z nieco inną konfiguracją (konkretnie chcę zastąpić adres URL JDBC, aby wskazać inną bazę danych), więc utworzę nowy plik konfiguracyjny, zapisuję go we właściwej strukturze katalogów (co oznacza, że w katalogu /config
z wejściem ścieżce klasy), i chcę zrobić coś takiego:
java -cp new-config:. -jar application.jar
Ale nie mogę uzyskać classpath mieć wpis new-config
ścieżce przed zawartości słoika aplikacji. Czy trudno jest zakodować, że zawartość JAR jest zawsze pierwszą rzeczą w ścieżce klas?
Czy próbowali uruchomieniem config poza de słoika, w jego własnym pliku jar w ścieżce względem application.jar (../conf/config.jar)? Jeśli to zrobisz, myślę, że możesz ustawić ścieżkę klas wskazując na ten jar konfiguracji w manifeście aplikacji i możesz ustawić nową konfigurację zmieniającą plik config.jar. Chciałbym mieć więcej czasu, aby zrobić demo, aby potwierdzić moją odpowiedź, ale nie mogę ... więc napisałem to jako komentarz – JuanZe
Masz na myśli, zamiast w środku JAR? – Guss
tak, zamiast wewnątrz tego samego słoika co aplikacja, umieszczenie config wewnątrz drugiego słoika ... – JuanZe