code: private boolean
  findSunJVM() {
  	List lserver = new ArrayList(0);
  	List lserver_tmp;
  	List lsearch = new ArrayList(0);
  	List lsearch_tmp;
  
  	try {
  		Class [] noClasses = new Class[0];
  		Object [] noObjects = new Object[0];
  		String resConfName = "sun.net.dns.ResolverConfiguration";
  		Class resConfClass = Class.forName(resConfName);
  		Object resConf;
  
  		// ResolverConfiguration resConf = ResolverConfiguration.open();
  		Method open = resConfClass.getDeclaredMethod("open", noClasses);
  		resConf = open.invoke(null, noObjects);
  
  		// lserver_tmp = resConf.nameservers();
  		Method nameservers = resConfClass.getMethod("nameservers",
  							    noClasses);
  		lserver_tmp = (List) nameservers.invoke(resConf, noObjects);
  
  		// lsearch_tmp = resConf.searchlist();
  		Method searchlist = resConfClass.getMethod("searchlist",
  							    noClasses);
  		lsearch_tmp = (List) searchlist.invoke(resConf, noObjects);
  	}
  	catch (Exception e) {
  		return false;
  	}
  
  	if (lserver_tmp.size() == 0)
  		return false;
  
  	if (lserver_tmp.size() > 0) {
  		Iterator it = lserver_tmp.iterator();
  		while (it.hasNext())
  			addServer((String) it.next(), lserver);
  	}
  
  	if (lsearch_tmp.size() > 0) {
  		Iterator it = lsearch_tmp.iterator();
  		while (it.hasNext())
  			addSearch((String) it.next(), lsearch);
  	}
  	configureFromLists(lserver, lsearch);
  	return true;
  }
docs: Uses the undocumented Sun DNS implementation to determine the configuration.
  This doesn't work or even compile with all JVMs (gcj, for example).