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

Apr 14, 2010 21:43

Речь пойдёт о джаве и двух чудесных 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. Риалне очень внезапно отреагировали - половины суток не прошло с момента публикации моего пста в унылом бложике и твиттере до регистрации бага в ютреке. Уважение и поклон.

java, idea, jetbrains, eclipse, Юзабилити, извращения, call stack

Previous post Next post
Up