Уже давно мне интересует как делаются эти «системы команд», как в Майнкрафт, например.
Там командой считается то, что начинается с символа "/", после чего идёт название команды, затем - его аргументы. Машина их отлично обрабатывает и в случае ошибки передаёт подходящее сообщение.
Я знаю, что нельзя просто оператором if проверять бесчисленные моменты… Это возможно было бы, если команда была, так сказать, единым, например, "java -version".
Как эта вся система команд работает? В чём секрет? Как машина читает это всё и даже распознаёт ошибку?
Это уже профессиональная часть, никто кроме разработчиков о ней не знает.
Прочитай про регулярные выражения. Это очень мощный инструмент поиска в тексте
Если система команд примитивная, то обычным if'ом.
Если появляются более сложные выражения - то это уже работа лексических и синтаксических анализаторов, более подробней описано в "Компиляторы: принципы, технологии и инструменты", второе издание вроде как раз на яве.