Про один эксепшн
Речь пойдёт о джаве и двух чудесных 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"
Это всё же более адекватное сообщение об ошибке, не так ли?
В целом, я считаю идею более прекрасной средой разработки, чем эклипс, но этот идеевский стек трейс мне просто вырвал мозг. Тупил минут десять, пока дошло, в чём же дело.
И, да — пошаговая инструкция для воспроизведения шыза следует:
- Создаём в идее новый java-проект с нуля.
- Добавляем пустой класс
- Добавляем в него public static void main(String[] args). Можно так: Ctrl+J, psvm.
- Запускаем (Alt+shift+F10). Программа выполняется успешно.
- Удаляем слово static.
- Запускаем опять (Shift+F10).
Не помню уж, как я додумался удалить статик и запустить программу. Возможно, это был вообще не я. Так что, друзья, будьте внимательны, любите лудей — и лучики счастья непременно вас коснутся.
UPD: IDEA-54009. Я люблю JetBrains. Риалне очень внезапно отреагировали — половины суток не прошло с момента публикации моего пста в унылом бложике и твиттере до регистрации бага в ютреке. Уважение и поклон.
Программизм, Юзабилитиcall stack, eclipse, idea, java, jetbrains, извращения, ЮзабилитиАпрель 14, 2010
2 комментария
Это ж один из наших студентов так написал.
Убунта, кстати, нумеруется просто — год.месяц, а выходит два раза в год — в апреле и октябре. То была xubuntu, версия 9.10
[...] проблема в IntelliJ IDEA, о которой я писал месяц назад, оказывается была пофикшена практически [...]
Leave a Reply