grep -lP '\s*public\s+static\s+void\s+main\s*\(\s*(?:\[\s*\]\s*)?String\s*(?:\[\s*\])?\s*\w+\s*\)' *.java
Приведенная выше команда вернет список файлов .java, содержащих метод main, который является просто указанием на то, что он является основным классом для каждой программы.
Как уже говорилось выше, открытый класс делаетэто не обязательно означает, что это основной класс программы, поэтому я считаю, что приведенная выше команда grep - ваш лучший шанс в этом случае.
Обратите внимание, что в одном приложении / программе может быть несколько классовсодержащий метод main, хотя в качестве точки входа программы фактически используется только один.