#java #eclipse #workspace
Вопрос:
В настоящее время я пытаюсь написать новую программу, но по какой-то причине мое затмение приостанавливается каждые 30 секунд или около того. Я думаю, что это как-то связано с новым кодом, который я писал.
Я использую eclipse 21-03, мой сервер Wildfly версии 21.0.2, и я использую OpenJDK-11.
Я уже пытался дать eclipse больше оперативной памяти, но это не помогло. Вы можете увидеть прикрепленную фотографию моего диспетчера задач. Eclipse все еще использует так много оперативной памяти, хотя я остановил сервер, а также программу. Что мне нужно сделать, чтобы приостановить выполнение задачи рабочей области, но не остановить запуск eclipse?
Комментарии:
1. Что вы подразумеваете под «приостановкой»? Что вы делаете и что происходит потом?
2. Я пытаюсь открыть класс java для редактирования своего кода. Я делаю это, пока другие программы не запущены. Eclipse либо открывает класс целую вечность, либо завершает работу из-за того, что запрос занял слишком много времени.
3. @Jana Это может быть вызвано установленным вами плагином. Что вы получаете с Eclipse 2021-06 без дополнительных плагинов?
4. Я установил Eclipse 2021-06, но если я импортирую свои проекты, появляется та же самая проблема. Возможно ли, что я использую неправильную версию java? Я запустил и отредактировал код на виртуальной машине, и это сработало.
Ответ №1:
1,5 ГБ-это вполне нормально для Eclipse. Грустно. БАРАНЬЯ свинья.
Есть две возможные причины, по которым Eclipse приостанавливает код:
- Вы установили точки останова, которые являются ручными инструкциями, указывающими Eclipse остановиться в режиме отладки. Это маленькие синие точки на номерах строк в окне кода.
- Некоторые исключения проходят весь путь трассировки стека без обработки. Если это произойдет в режиме отладки, Eclipse остановится там, где возникнет исключение, и сообщит вам причину.
Решения:
- Улучшите свой код, чтобы исключения не выпадали. Используйте try-catch
- Удалите установленные вами точки останова
- Запускайте приложение не в режиме отладки, а в обычном режиме запуска. Таким образом, отладчик не подключается и не будет прерывать «нормальный» поток.
Пример прерывания исключения в режиме отладки:
- Всплывающее окно показывает, что
x
это значение равно нулю, поэтому доступ к x.length() приведетNullPointerException
к появлению (NPE), который не пойман, но вылетает вThread
- В правом нижнем углу в представлении Отладка показано, где и почему остановлено выполнение.
Комментарии:
1. Но 1,5 ГБ-это ненормально, если код не запущен, не так ли? Eclipse уже перестает работать, если я просто попытаюсь открыть простой класс java. Я все еще старался удалить все точки останова и перехватывать все исключения, которые могли возникнуть, но это не решило проблему.
2. Приведите нам пример скриншота, на котором показано, когда Eclipse останавливается, и что написано в «Представлении отладки», т. е. маленьком окне с зеленой ошибкой на нем (Меню: Окно -> Показать представление ->> Отладка). И, возможно, тоже наведите курсор на отмеченную строку и покажите нам некоторые детали отладки, которые появляются при наведении курсора мыши на переменные.
3. И если код запущен, это обычно не влияет на ресурсы Eclipse, так как большая часть действий выполняется в JVM, запущенной (извне) для запуска приложения.
4. Один из способов узнать, ваш ли это код или eclipse, — открыть свой проект в IntelliJ и VCCode или в другой среде разработки по вашему выбору.
5. Нет, 1,5 ГБ-это ненормально. На скриншоте показано довольно старое затмение, и в прошлом, например, Maven вызывал высокое потребление памяти. Это также может быть вызвано дополнительно установленным плагином.