ОБНОВЛЕНИЕ: в конце концов я обнаружил, что проблема, описанная ниже, была только начальной проблемой представления.Фактическая проблема заключается в том, что после обновления с Java 8 до Java 10 (и 11) Eclipse не смог правильно скомпилировать мой проект.Библиотека JDK и другие параметры были настроены правильно, и я получил около 1000 ошибок компиляции.
Нет никаких оснований для дальнейшего чтения
Я обновил свинг-приложениеот JDK 8 до JDK 10 (Oracle Java на Mac), и затмение жалуется, что javax.accessibility.Accessible
отсутствует и требуется для одного из моих классов.Я понимаю, что означает эта ошибка, но я не могу понять, почему Eclipse не может найти этот пакет.Я искал в сети более часа, и я не могу сказать, что у кого-то есть эта проблема.Кажется, я должен иметь возможность получить доступ к этому пакету из JDK, но я, очевидно, что-то упускаю.
EDIT2:
Я выключил флаг, чтобы прервать сборку, когда он имеетошибка, и теперь я вижу, что есть сотни ошибок.Трудно сказать, какие из них являются первичными, но распространенным явлением является class java.awt.<SomeClass> is not accessible
.Это, кажется, происходит для каждого класса AWT.Мой код не организован как модули, и я вижу java.desktop
как неявно доступный на Modulepath
.Кроме того, сборка муравья этого кода работает нормально.
РЕДАКТИРОВАТЬ:
Как предлагается в комментариях, это, вероятно, неверная конфигурация IDE, но я не знаю, что я могу исправить.Я был вдали от Java в течение нескольких лет, и хотя я достаточно поспорил, чтобы знать, что JDK был реорганизован с JDK 9, и были представлены модули, я не знаю, есть ли что-то, что я долженсделать явно, чтобы сделать пакет javax.accessibility
доступным на пути к классам.Я просто добавил системную библиотеку JRE в путь сборки в проекте, как всегда делал с проектами Java в Eclipse.
В пользовательском интерфейсе настройки пути сборки я вижу системную библиотеку JRE (привязанную к JDK10) как единственная запись под Modulepath
.В Системной библиотеке JRE я вижу несколько модулей, а над ними находится запись Is Module
, которую я могу редактировать.Он показывает мне доступные модули слева и явно и неявно включенные модули в две таблицы дерева справа.Ни один из них не включает javax.accessibility
, но jdk.accessibility
указан как явно включенный.Ни один из доступных модулей слева не имеет никакого отношения к доступности.Так что я в растерянности относительно того, что я могу сделать дальше, чтобы включить этот недостающий пакет.Некоторые классы свинга зависят от него, поэтому, кажется, он должен быть там по умолчанию.