Про один эксепшн

Речь пойдёт о джаве и двух чудесных IDE — eclipse и IntelliJ IDEA. Тестировалось всё в самых последних на момент написания статьи версиях этих программ под windows xp и какой-то там убунтой (десятой, чтоли).

Внимание, загадка! Что означает это сообщение об ошибке, выдаваемое идеей при попытке запуска программы (программа простенькая, четыре строчки):

Exception in thread "main" java.lang.NullPointerException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:110)

Ответ — дальше.

Внимание, код программы:

public class Program {
    public void main(String[] args) {
    }
}

Косяк очевиден — нету ключевого слова static. Кстати, вот как реагирует на это эклипс:

java.lang.NoSuchMethodError: main
Exception in thread "main"

Это всё же более адекватное сообщение об ошибке, не так ли?

В целом, я считаю идею более прекрасной средой разработки, чем эклипс, но этот идеевский стек трейс мне просто вырвал мозг. Тупил минут десять, пока дошло, в чём же дело.

И, да — пошаговая инструкция для воспроизведения шыза следует:

  1. Создаём в идее новый java-проект с нуля.
  2. Добавляем пустой класс
  3. Добавляем в него public static void main(String[] args). Можно так: Ctrl+J, psvm.
  4. Запускаем (Alt+shift+F10). Программа выполняется успешно.
  5. Удаляем слово static.
  6. Запускаем опять (Shift+F10).

Не помню уж, как я додумался удалить статик и запустить программу. Возможно, это был вообще не я.  Так что, друзья, будьте внимательны, любите лудей — и лучики счастья непременно вас коснутся.

UPD: IDEA-54009. Я люблю JetBrains. Риалне очень внезапно отреагировали — половины суток не прошло с момента публикации моего пста в унылом бложике и твиттере до регистрации бага в ютреке. Уважение и поклон.

2 комментария

  1. Это ж один из наших студентов так написал.

    Убунта, кстати, нумеруется просто — год.месяц, а выходит два раза в год — в апреле и октябре. То была xubuntu, версия 9.10

  2. [...] проблема в IntelliJ IDEA, о которой я писал месяц назад, оказывается была пофикшена практически [...]

Leave a Reply

Name (required)


Mail (required)


Website