Я собираюсь добавить здесь еще один ответ, просто чтобы представить, что я считаю наиболее минимальным подходом. В моей настройке Eclipse у меня установлен e (fx) clipse, который предоставляет одно исправление для этого, а также предоставляет множество полезных функций разработки, которые вам почти наверняка понадобятся, если вы пишете приложения JavaFX. Это, наверное, самый практичный подход. Если по какой-то причине вам не нужен этот плагин, решение, изложенное в этом ответе, устранит проблему с наименьшим количеством других побочных эффектов.
Как указано в других ответах, Eclipse по умолчанию запрещает доступ к классам в файлах jar в каталоге jre / lib / ext, поскольку они не гарантируются на всех платформах Java. Если вы пишете приложение JavaFX 8, вы предполагаете, что находитесь на платформе, где jfxrt.jar доступен в каталоге lib / ext.
Таким образом, минимальное исправление для этого - разрешить доступ к классам в этом файле jar (и только в этом файле jar). Для этого щелкните проект правой кнопкой мыши и откройте диалоговое окно свойств проекта. Выберите «Путь сборки» на левой панели и выберите вкладку «Библиотеки». Вы увидите запись «Системная библиотека JRE». Разверните эту запись, и вы увидите подстатью «Правила доступа»:
Выберите запись «Правила доступа» и нажмите «Изменить». Щелкните «Добавить».
В разделе «Разрешение» выберите «Доступный», а в разделе «Шаблон правила» введите javafx/**
:
Щелкните OK, чтобы закрыть все диалоговые окна.
Этот параметр разрешит доступ ко всем классам в любом начале пакетов javafx.
, но сохранит правило в папке ext для всех других классов и является «минимальным» в этом смысле.
Опять же, вы, вероятно, действительно хотите установить плагин e (fx) clipse, но, насколько мне известно, это решение с наименьшими побочными эффектами в вашей настройке Eclipse.