Mamy prostą aplikację użytkową, która odczytuje wszystkie dane strefy czasowej używane w środowisku JRE i wyświetla je wszystkie w prostej tabeli. Musimy użyć starszej wersji JRE (6_24) do wydania nadchodzącej wersji produktu (z powodu innych problemów), ale w tym wydaniu musimy również wprowadzić nowsze aktualizacje strefy czasowej (które w przeciwnym razie byłyby uwzględnione np. W 6_29).). Już pakujemy prywatne środowisko JRE, które zostanie zainstalowane, więc uzyskanie aktualizacji strefy czasowej do tego prywatnego środowiska JRE przy użyciu TZUpdater tool nie jest problemem - problem polega na czytaniu/sprawdzaniu, która wersja tzdata (np. Tzdata2010o, tzdata2011k) jest odczytać za pomocą aplikacji narzędziowej (tj. która wersja jest używana w środowisku JRE, w którym działa aplikacja). Aplikacja wyświetla obecnie na pasku tytułowym wersję JRE, ale z aktualizacjami strefy czasowej nie jest już wystarczająca do określenia, która wersja 2 strefy czasowej jest używana.Java - znajdź używaną wersję tzdata niezależnie od wersji JRE
Zajrzałem do klasy TimeZone, ale nie wydaje się, aby podać te informacje - być może istnieje właściwość systemu, która przechowuje te informacje? Narzędzie TZUpdater wie, która wersja jest używana, więc musi być gdzieś dostępne - nie wyobrażam sobie, żeby analitycznie ustalili, która wersja jest używana w narzędziu do aktualizacji ... Czy ktoś wie, gdzie zlokalizować te informacje?
Tak, to folder, który zostanie zastąpiony przez TZUpdater, a ja zauważyłem (po zaksięgowaniu pytanie) że ZoneInfoMappings zawiera tę linię, ale Notepad ++ pokazuje inne dane/znaki dookoła niego w pierwszej linii, co sprawiło, że myślę, że będzie to wymagało jakichś hackowskich rzeczy ... Miejmy nadzieję, że jest lepszy sposób na uzyskanie tego z JRE lub ktoś może opublikować kod aby odczytać ten plik/linię ... – johnny
Zaktualizowana odpowiedź. –
kod używany tutaj jako przykład do analizy tego: http://www.docjar.com/html/api/sun/util/calendar/ZoneInfoFile.java.html – johnny