jill/src/main/java/io/github/agentsoz/jill/Main.java
public static void start(Config config) {
    // Start the agents
    long t0 = System.currentTimeMillis();
    int index = 0;
    int subIndex = 0;
    for (Config.AgentTypeData agentType : config.getAgents()) {
      index = subIndex;
      String[] args = (agentType.getArgs() == null || agentType.getArgs().isEmpty()) ? new String[0]
          : agentType.getArgs().toArray(new String[agentType.getArgs().size()]);
      for (subIndex = index; subIndex < index + agentType.getCount(); subIndex++) {
        // Get the agent
        Agent agent = (Agent) GlobalState.agents.get(subIndex);
        // Start the agent
        agent.start(writer, args);
      }
    }
    long t1 = System.currentTimeMillis();
    logger.info("Started " + GlobalState.agents.size() + agentsIn + Log.formattedDuration(t0, t1));

    // Start the intention selection threads
    Program.startIntentionSelectionThreads();

  }
public static void start(Config config) {
    // Start the agents
    long t0 = System.currentTimeMillis();
    int index = 0;
    int subIndex = 0;
    for (Config.AgentTypeData agentType : config.getAgents()) {
      index = subIndex;
      String[] args = (agentType.getArgs() == null || agentType.getArgs().isEmpty()) ? new String[0]
          : agentType.getArgs().toArray(new String[agentType.getArgs().size()]);
      for (subIndex = index; subIndex < index + agentType.getCount(); subIndex++) {
        // Get the agent
        Agent agent = (Agent) GlobalState.agents.get(subIndex);
        // Start the agent
        agent.start(writer, args);
      }
    }
    long t1 = System.currentTimeMillis();
    logger.info("Started " + GlobalState.agents.size() + agentsIn + Log.formattedDuration(t0, t1));

    // Start the intention selection threads
    Program.startIntentionSelectionThreads();

  }
Starts the Jill engine. Must have previously been initialised (see {@link #init(Config)}).

@param config a valid config