Различные результаты при компиляции с командной строкой и BlueJ - PullRequest
1 голос
/ 16 июля 2011

Я только начинаю Java ... снова.Я только что сделал простую программу

class first
{
    public static void main()
    {
        System.out.println("Hello!");
    }
}

Это прекрасно работает в BlueJ, но выдает ошибку во время выполнения при запуске из командной строки.

Это ошибка Exception in thread "main" java.lang.NoSuchMethodError: main

Это потому, что я не дал String args[] в списке параметров main

До сих пор я давал это подсознательно.Я знаю, что строковый массив содержит все значения параметров при запуске, но тогда почему он работает в BlueJ?

(BlueJ - дружественный для студентов редактор и компилятор Java)

1 Ответ

3 голосов
/ 16 июля 2011

Ваша программа действительна и будет компилироваться одинаково независимо от того, компилируете ли вы ее из BlueJ или из командной строки.

Однако blueJ позволит вам запустить любой статический метод в классе (чтобы вы могли проверить свои функции), где в качестве командной строки команда java будет (только) искать специальный main метод для запуска. Этот основной метод объединяет массив String со всеми параметрами командной строки, и ваша программа должна выглядеть так, даже если вы не используете эти параметры командной строки:

class first
{
    public static void main(String[] args)
    {
        System.out.println("Hello!");
    }
}
...