Mam prostą aplikację java, która ładuje plik właściwości z bieżącego pakietu.Załaduj zasób z dowolnego miejsca w ścieżce klasy
this.getClass().getResourceAsStream("props.properties");
Działa to dobrze, gdy żądany plik właściwości jest w bieżącym pakiecie. Jednak chcę spakować tę aplikację jako plik JAR i zdefiniować i zastąpić nowym plikiem właściwości, w którym go używam. Czy istnieje sposób na załadowanie pierwszego zasobu o nazwie "props.properties", który znajduje się w ścieżce klas?
I ma to być tak proste, aby zastąpić plik właściwości poprzez linię poleceń:
java.exe -classpath props.properties;myJar.jar com.test.MyApp
nie chcę mieć do rozpakowania JAR i zmodyfikować właściwości pliku, aby coś zmienić. Czuję się jakbym brakuje czegoś oczywiste ...
Dźwięki o prawych: Chcesz poprosić ClassLoader, że jest "szefem" tego, który załadował twoją klasę, aby mógł mieć dostęp do większej liczby pakietów. Inną możliwością jest wypróbowanie 'ClassLoader.getSystemClassLoader()' - jak sama nazwa wskazuje, jest "szefem" pozostałych. –
nie ma statycznej metody 'getResourceAsStream()' w klasie 'ClassLoader'. –
i systemowy program ładujący prawdopodobnie załaduje zasoby spoza ścieżki klasy aplikacji, np. Przeglądając katalogi bootstrap w ścieżce instalacji JRE –