protected static List<JavaInfo> findMacJavas() {
        List<String> javaExecs = Lists.newArrayList();
        String javaVersion;
        
        javaVersion = getMacJavaPath("1.6");
        if(javaVersion != null)
            javaExecs.add(javaVersion + "/bin/java");
        
        javaVersion = getMacJavaPath("1.7");
        if(javaVersion != null)
            javaExecs.add(javaVersion + "/bin/java");

        javaVersion = getMacJavaPath("1.8");
        if(javaVersion != null)
            javaExecs.add(javaVersion + "/bin/java");

        javaExecs.add("/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java");
        javaExecs.add(System.getProperty("java.home") + "/bin/java");

        List<JavaInfo> result = Lists.newArrayList();
        for (String javaPath : javaExecs) {
            File javaFile = new File(javaPath); 
            if (!javaFile.exists() || !javaFile.canExecute())
                continue;

            try {
                result.add(new JavaInfo(javaPath));
            } catch (Exception e) {
                Logger.logError("Error while creating JavaInfo", e);
            }
        }
        return result;
    }