Probleme mit der OpenJDK-Zeitzone: sun.util.calendar.ZoneInfoFile.getZoneIDs

1675
gabriel_agm

Ich verwende Ubuntu 12.04 LTS und installierte kürzlich den openjdk-7-jdk mit apt-get. Für eine Weile schien alles in Ordnung zu sein, aber mir wurde klar, dass eines meiner Projekte mit dem folgenden Stack zu brechen begann:

java.lang.NullPointerException sun.util.calendar.ZoneInfoFile.getZoneIDs(ZoneInfoFile.java:790) sun.util.calendar.ZoneInfo.getAvailableIDs(ZoneInfo.java:601) java.util.TimeZone.getAvailableIDs(TimeZone.java:580) mpeg.psi.TOT.parseMJD(TOT.java:136) 

Googli'n in der Nähe Ich habe andere Leute mit ähnlichen Problemen gefunden und auf einen Fehler im Tool "tzupdater.jar" von Oracle hingewiesen. Sollte nicht mein Fall sein, aber ich habe den vorgeschlagenen Fix ausprobiert, der die Berechtigungen von "lrwxrwxrwx 1 root root 27 Set 20 08:59 / usr / lib / jvm / java-7-openjdk-amd64 / jre / lib" überprüft und verwirrt hat / zi -> ../../../../../share/javazi "und Ausführen des Tzupdater. Irgendwie habe ich es behoben, aber einige spätere Updates brachen es erneut.

Ich habe mich entschieden, radikal zu gehen:

$> sudo apt-get purge openjdk-6-jre openjdk-6-jre-lib openjdk-7-jre-headless openjdk-7-jre-lib openjdk-7-jre openjdk-6-jre-headless java-common $> sudo apt-get install openjdk-6-jdk ant jdownloader java-common $> sudo apt-get install tzdata-java tzdata-java is already the newest version. 

Noch fehlerhaft :(

Jetzt habe ich keine Ideen mehr. Der Code, der dies unterbricht, lautet: TimeZone.getAvailableIDs (-3 * 60 * 60 * 1000); Das heißt, ich möchte, dass GMT-3 einen Satz von Zahlen (Haus, Minute, Tag ...) in ein Datum konvertiert:

 gc.set(GregorianCalendar.YEAR, year); gc.set(GregorianCalendar.MONTH, month - 1); 

Irgendein Tipp, wie Sie die Java TZ reparieren oder das Problem mit dem Java-Code umgehen können?

3

0 Antworten auf die Frage