Поддержка аргументов командной строки в значительной степени стандартна для языков программирования.Даже в этот век графических интерфейсов существует множество скрытых способов запуска программы с аргументами командной строки.Я знаю, что в Windows есть настройки ярлыков для опытных пользователей, где вы можете запустить программу с заданным набором аргументов командной строки, например.
Java также принудительно применяет типы и сигнатуры функций расширений (ищите это в Google, еслиты не знаешь что это такое).Ожидается, что основная функция будет принимать массив строк - если определенная вами основная функция не соответствует сигнатуре этого аргумента (1 аргумент, массив строк), то это вызывает несовместимость.
Java поддерживает перегрузку функций(вы можете определить одно и то же имя функции несколько раз с разными аргументами).Чтобы определить, какую функцию вызывать, Java принимает типы входных аргументов и ищет соответствующую определенную функцию, которая принимает совпадающие аргументы.
Когда программа запускается, Java специально ищет функцию с именем main с 1 аргументом (String[]).Ваша программа не определяет главную функцию с этой спецификацией аргумента, поэтому этот поиск завершается ошибкой с сообщением об ошибке.