}
	private static String searchFor(final String target, String start) {		String[] candidates = (String[]) searchCandidates.get(start);		if (candidates == null) {			candidates = new File(start).list();			if (candidates != null)				searchCandidates.put(start, candidates);		}		if (candidates == null)			return null;		String result = null;		Object maxVersion = null;		for (int i = 0; i < candidates.length; i++) {			String name = candidates[i];			if (!name.equals(target) && !name.startsWith(target + "_")) //$NON-NLS-1$				continue;			String version = ""; //$NON-NLS-1$ // Note: directory with version suffix is always > than directory without version suffix			int index = name.indexOf('_');			if (index != -1)				version = name.substring(index + 1);			Object currentVersion = getVersionElements(version);			File candidate = new File(start, candidates[i]);			if (maxVersion == null) {				result = candidate.getAbsolutePath();				maxVersion = currentVersion;			} else {				if (compareVersion((Object[]) maxVersion, (Object[]) currentVersion) < 0) {					result = candidate.getAbsolutePath();					maxVersion = currentVersion;				}			}		}		if (result == null)			return null;		return result.replace(File.separatorChar, '/') + "/"; //$NON-NLS-1$	}