Есть ли какая-либо функция командной строки, которая будет возвращать имя основного класса из огромного файла Java? - PullRequest
2 голосов
/ 27 июня 2019

Я хочу автоматизировать процесс загрузки огромного количества файлов Java из Интернета и проверять их один за другим.Однако на большинстве сайтов не указывается название основного класса.Поэтому большую часть времени мне нужно вручную искать строку «public class», чтобы определить имя файла.Есть ли лучший способ сделать это?

Как правило, формат кода:

import ...
import ...
import ...

class A {...}
class B {...}
public class C {...}

1 Ответ

1 голос
/ 27 июня 2019
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, хотя в качестве точки входа программы фактически используется только один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...