At Google, we maintain environments that have only IPv6 (IPv4 not supported). Naturally, some things in the JDK fail then. We should fix that.
There is evidence of attempts to support missing IPv4 in the sources already, but it is not complete.
Experimental patch at:
http://cr.openjdk.java.net/~martin/webrevs/openjdk9/ipv6-only/
(this is a port of local changes to openjdk9)
When setting the IPV6_V6ONLY=0 socket option, ignore errors instead of throwing an exception.
When checking for "protocol not supported", check for both EAFNOSUPPORT and EPROTONOSUPPORT.