um projeto java nada mais é do que diversas classes e arquivos auxiliares.
um jar, por exemplo, é um monte de .class em um arquivo zip (basicamente)
a maquina virtual java precisa de duas coisas para executar:
primeiro precisamos saber qual é a classe que vai ser executada ( e, no caso, o metodo publico, estatico main vai ser chamado )
segundo precisamos do classpath, que diz a maquina virtual onde procurar pelo codigo ( os .class )
no caso de alguns frameworks, vc pode não ter um main. sistemas web, por exemplo, são executados de outra forma ( vc registra servlets que vão responder a requests http em determinados caminhos ).
se vc encontrou diversos main, com certeza cada um tem a sua finalidade. se não achou nenhum, então tem algo extra ( ai precisa ler a documentação )