Еще раз, благодаря руководству людей здесь, я нашел ответ. Вышеуказанная Java-программа работает, когда я делаю следующее:
java -Djava.net.preferIPv4Stack=true DomainResolutionTest
Детали:
jgreenwood@jeg-ubuntu64:~$ java -Djava.net.preferIPv4Stack=true DomainResolutionTest
www.google.com/209.85.225.106
jgreenwood@jeg-ubuntu64:~$ java DomainResolutionTest ERROR: www.google.com
java.net.UnknownHostException: www.google.com
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:849)
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1200)
at java.net.InetAddress.getAllByName0(InetAddress.java:1153)
at java.net.InetAddress.getAllByName(InetAddress.java:1083)
at java.net.InetAddress.getAllByName(InetAddress.java:1019)
at java.net.InetAddress.getByName(InetAddress.java:969)
at DomainResolutionTest.main(DomainResolutionTest.java:12)
Оказывается, в стеке IPv6 есть ошибка. Есть пара постов, которые привели меня к такому выводу:
http://uclue.com/?xq=2127
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477211
https://answers.launchpad.net/ubuntu/+question/23024
Я уверен, что мне не нужно добавлять дерьмо IPv4 при каждом запуске Java-приложения. Окончательное решение может быть во второй ссылке - отсутствует пакет. Посмотрим.
Журналы отчетов об ошибках Debian - # 477211
ia32-sun-java6-bin: зависит от
lib32nss-MDNS
...
Не удается разрешить доменные имена. Разрешить
хорошо на остальной части системы, есть
не проверено с другими JDK.
Устанавливается из пакета и устанавливается с
обновить-Java-альтернативы.
DNS работает на все остальное на моем
система. Работает на Debian
2.6.23-AMD64. Пробовал как пакеты Lenny, так и пакеты Sid. Работает как
ожидается с sun-java6-bin, терпит неудачу
с ia32-sun-java6-bin. Arg. ... Если
вы попали в Java с Strace вы увидите
что он пытается использовать
libnss_mdns4_minimal.so.2, который
доступный в пакете
lib32nss-MDNS. Вы должны добавить
зависимость от того, чтобы исправить ошибку.
То же самое происходит с sun-java6-bin -
Здесь используется libnss-mdns.
На моей машине действительно отсутствует пакет:
jgreenwood@jeg-ubuntu64:~$ dpkg -L lib32nss-mdns
Package `lib32nss-mdns' is not installed.
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.
В любом случае, я надеюсь, что этот пост поможет кому-то еще, потому что это был главный PITA, чтобы выяснить.