docs: def find_libjvm(self, java_home):
          """
          Recursively looks for the given file
  
          :param java_home: A Java home folder
          :param filename: Name of the file to find
          :return: The first found file path, or None
          """
          found_jamvm = False
          non_supported_jvm = ('cacao', 'jamvm')
          found_non_supported_jvm = False
  
          # Look for the file
          for root, _, names in os.walk(java_home):
              if self._libfile in names:
                  # Found it, but check for non supported jvms
                  candidate = os.path.split(root)[1]
                  if candidate in non_supported_jvm:
                      found_non_supported_jvm = True
                      continue # maybe we will find another one?
                  return os.path.join(root, self._libfile)
  
          else:
              if found_non_supported_jvm:
                  raise JVMNotSupportedException("Sorry '{0}' is known to be "
                                                 "broken. Please ensure your "
                                                 "JAVA_HOME contains at least "
                                                 "another JVM implementation "
                                                 "(eg. server)"
                                                 .format(candidate))
              # File not found
              raise JVMNotFoundException("Sorry no JVM could be found. "
                                         "Please ensure your JAVA_HOME "
                                         "environment variable is pointing "
                                         "to correct installation.")