code: def find_libs(self, names):
      
      def collect_existing_libs():
        def lib_paths():
          yield os.path.join(self.home, 'lib')
          if self.jdk:
            yield os.path.join(self.home, 'jre', 'lib')
  
        for name in names:
          for path in lib_paths():
            lib_path = os.path.join(path, name)
            if os.path.exists(lib_path):
              yield lib_path
              break
          else:
            raise Distribution.Error('Failed to locate {} library'.format(name))
  
      return list(collect_existing_libs())
docs: Looks for jars in the distribution lib folder(s).
  
      If the distribution is a JDK, both the `lib` and `jre/lib` dirs will be scanned.
      The endorsed and extension dirs are not checked.
  
      :param list names: jar file names
      :return: list of paths to requested libraries
      :raises: `Distribution.Error` if any of the jars could not be found.