Note however that my old /etc/localtime is binary identical to /usr/share/zoneinfo/Europe/Amsterdam. So it looks to me like Java expects to find a symbolic link here, and the time zone detection fails if Java encounters a regular file instead of the link.
Something seemed to be wrong with /etc/localtime in my case.
The following solved the problem on my feisty machine:
sudo cp /etc/localtime /etc/localtime.bak zoneinfo/ Europe/ Amsterdam /etc/localtime
sudo ln -s -f /usr/share/
See http:// ubuntuforums. org/showthread. php?p=2312649
Note however that my old /etc/localtime is binary identical to /usr/share/ zoneinfo/ Europe/ Amsterdam. So it looks to me like Java expects to find a symbolic link here, and the time zone detection fails if Java encounters a regular file instead of the link.