Eclipse Oxygen генерирует генерацию toString, не работающую

После того, как я настроил Eclipse Oxygen для работы с Java 9, когда я перехожу к Source => Generate toString(), я получаю это сообщение об ошибке:

Невозможно создать реализацию метода.
Причина: module:java.base не находится в пути сборки своего проекта

Генерация constructor, геттеров и сеттеров, hashcode() и equals() работает нормально, только toString() не работает.

Если я ввожу метод toString() вручную, он работает нормально. Также, если я создам проект с использованием JRE 8, сгенерируйте toString() нормально. Есть идеи, как это исправить?


person BrunoJustino    schedule 06.09.2017    source источник
comment
Какой способ по умолчанию вы используете при создании toString()? Требуется ли StringBuffer или StringBuilder? И разве написание той же самой реализации вручную не require java.base в модуле-info.java?   -  person Naman    schedule 06.09.2017
comment
Я просто захожу в источник, нажимаю «Создать toString()» и нажимаю «ОК». Не требует StringBuffer или StringBuilder. Если я печатаю вручную, все работает нормально, я не получаю никаких ошибок или чего-то еще.   -  person BrunoJustino    schedule 06.09.2017
comment
В этом случае, не могли бы вы также поделиться написанным вами ручным кодом и, возможно, попытаться сообщить об этом в Eclipse, если это какая-то известная проблема с самой Eclipse.   -  person Naman    schedule 07.09.2017


Ответы (3)


После беглого просмотра я отправил https://bugs.eclipse.org/521995 - т.е. это действительно ошибка в бета-поддержке Java 9.

EDIT: Хотя эта конкретная ошибка исправлена ​​только в потоке Photon (будет выпущен в июне), несколько других исправлений в этой области были перенесены обратно. Так что, если повезет, выпуск 4.7.3a (с поддержкой Java 10, запланированный на 11 апреля) должен решить эту проблему для большинства пользователей.

person Stephan Herrmann    schedule 07.09.2017

Перейдите в раздел Проект --> Свойства --> Путь сборки Java в разделе Библиотеки и посмотрите, какой jdk/jre включен (в моем случае там была Java 9, но проект был сконфигурирован с Java 8).

Если это не так, нажмите Добавить внешние банки... в правом меню. Чтобы найти банку (на Mac), перейдите в /Library/Java/JavaVirtualMachines и перемещайтесь, пока не найдете файл rt.jar.

В моем случае путь был таким: /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib.

person Kejsi Struga    schedule 25.04.2018

та же проблема случалась со мной, когда я использовал Java 9, после этого я удалил Java 9, а затем установил JDK 1.8, и я решил две проблемы: одна - генерация toString() и (проблема с JavaDoc не работает, означает отсутствие описания о чем-либо когда я навожу курсор на элементы).

person mahadev dhyani    schedule 24.12.2017