code: public synchronized void start() throws IOException {
          if (listenerThreads.size() == 0) {
              List<InetAddress> addresses = hostAddress == null ? NetworkUtil.getMulticastAddresses() : Arrays.asList(hostAddress);
              if (addresses.size() == 0) {
                  logHandler.info("No suitable address found for listening on multicast discovery requests");
                  return;
              }
              // We start a thread for every address found
              for (InetAddress addr : addresses) {
                  try {
                      MulticastSocketListenerThread thread = new MulticastSocketListenerThread("JolokiaDiscoveryListenerThread-" + addr.getHostAddress(),
                                                                                              addr,
                                                                                               detailsHolder,
                                                                                               restrictor,
                                                                                               logHandler);
                      thread.start();
                      listenerThreads.add(thread);
                  } catch (IOException exp) {
                      logHandler.info("Couldn't start discovery thread for " + addr + ": " + exp);
                  }
              }
          }
      }
docs: Start the responder (if not already started)