Pergunta

Todo programa Java deve possuir um main?

Resposta

Sim, todo programa Java deve possui um método denominado main, o qual deve ser declarado da seguinte forma:

public static void main (String args[]) {
}

Tal forma de declaração é obrigatória pois:

Note que nem todas as classes devem possuir o método main, apenas aquela que será responsável pela ativação da aplicação, ou seja, aquela que será inicialmente carregada pela máquina virtual Java. Desta forma apenas a classe que é inicialmente fornecida para JVM deve possuir um método main.