Требует точку с запятой при создании метода

Простите за максимально тупой вопрос. Я только начал изучать Java, пытаюсь создать метод, но компилятор жалуется на пропущенную точку с запятой, её добавление ничего не меняет, хотя я и сам понимаю, что точки с запятой там не должно быть

public class HelloWorld {
    public static void main (String[] args) {
        void printHelloWorld *ВОТ ТУТ ТРЕБУЕТ ТОЧКУ С ЗАПЯТОЙ* {
            System.out.println("HelloWorld");
        }
    printHelloWorld()
    }
}

Ответы (2 шт):

Автор решения: Evgenii Izhboldin

Вы пытаетесь объявить один метод внутри другого. Объявляйте методы внутри класса.

public class HelloWorld {
    private static void printHelloWorld () { //Объявляем отдельно
        System.out.println("HelloWorld");
    }

    public static void main (String[] args) {
        printHelloWorld();
    }
}
→ Ссылка
Автор решения: Roman Konoval

Компилятор не всегда может догадаться, что именно программист хотел написать. Он видит синтаксически некорректную программу и показывает приблизительное место ошибки и исходя из синтаксиса языка, что возможно не так. И не всегда пишет правильно.

Тут скорее всего он трактует void printHelloWorld как объявление переменной типа такого:

int i;

а такое определение заканчивается точкой с запятой.

В чем можно быть уверенным, это что где-то рядом с местом, которое он показывает - ошибка. С опытом научитесь распознавать.

Собственно про саму ошибку уже ответили.

→ Ссылка