2012-04-29 16 views
8

Jestem nowy w Java API do logowania i potrzebuję pomocy w tym problemie: Podczas tworzenia aplikacji mój plik konfiguracyjny został zapisany w folderze głównym projektu, więc użyłem przełącznika -Djava.util.logging.config.file=logging.properties, aby uruchomić program. Ale potem wyeksportowałem plik wykonywalny JAR. Jak skonfigurować rejestrowanie teraz? Nie działa, gdy określam ścieżkę do pliku konfiguracyjnego za pomocą przełącznika -D.Jak skonfigurować rejestrowanie przy uruchomieniu JAR?

Odpowiedz

6

Nie można podać argumenty JVM do pliku MANIFEST.MF więc trzeba określić właściwości rejestrowania w wierszu poleceń lub za pomocą skrótu:

java -Djava.util.logging.config.file=logging.properties -jar yourjar.jar 

przeciwnym razie mógłby spakować plik właściwości (logging.properties w twoim przypadku) w JAR, przeczytaj to przy uruchamianiu i umieść te ustawienia we właściwościach systemu.

3

The javadoc mówi:

Ponadto LogManager wykorzystuje dwa opcjonalne właściwości systemowe umożliwiających lepszą kontrolę nad odczytu początkowego ustawienia:

"java.util.logging.config.class" 
"java.util.logging.config.file" 

Te dwie właściwości mogą być ustawione poprzez preferencji API lub komendę definicji właściwości linii do komendy "java" lub jako właściwość systemu definicje przekazane do JNI_CreateJavaVM.

Jeśli ustawiono właściwość "java.util.logging.config.class", wówczas wartość właściwości jest traktowana jako nazwa klasy. Dana klasa zostanie załadowana , obiekt zostanie utworzony, a konstruktor obiektu jest odpowiedzialny za odczyt w początkowej konfiguracji. (Ten obiekt może używać innych właściwości systemu do kontrolowania swojej konfiguracji.) Alternatywna klasa konfiguracji może użyć readConfiguration (InputStream) do zdefiniowania właściwości w LogManager.

Więc, albo użyć właściwości systemu java.util.logging.config.file i zapisać plik konfiguracyjny z pliku jar (co jest dobrym pomysłem, jeśli chcesz być w stanie dostosować właściwości rejestrowania w celu debugowania lub analizować niektóre dziwne zachowanie) lub przechowywać plik konfiguracyjny w dowolnym miejscu (na przykład w pliku jar) i użyć właściwości systemowej java.util.logging.config.class, aby załadować i utworzyć instancję klasy, która odczyta plik w pliku jar (przy użyciu Class.getResourceAsStream()).

Powiązane problemy