Использование JavaFX (JDK 1.8.0_05) в Eclipse Luna не работает

У меня есть новая установка Java 8 (JDK 1.8.0_05 в 32-разрядной версии Windows 7) и Eclipse Luna. Когда я пытаюсь создать простую программу JavaFX, Eclipse показывает в редакторе следующее сообщение:

Ограничение доступа: тип «Приложение» не является API («C:\Program Files\Java\jre8\lib\ext\jfxrt.jar»)

Если я использую javac в командной строке для компиляции программы, все работает нормально.

Любые подсказки, как решить эту проблему?


person Klaus Rohe    schedule 28.06.2014    source источник


Ответы (4)


Чтобы получить доступ к JavaFx в Java8 с помощью Eclipse Luna (4.4):

Перейдите в Путь сборки/JRE/Правила доступа/Редактировать/Добавить/Доступно: javafx/**

person Georg    schedule 14.07.2015

Это решило проблему для меня:

  • Открыты свойства JRE проекта Eclipse с помощью контекстного меню JRE.
  • Вместо «Среда выполнения» я выбираю «Альтернативная JRE», а затем «jdk1.8.0_5» - в конце концов вам нужно настроить эту «Альтернативную JRE» перед
person marc    schedule 23.07.2014
comment
Спасибо за это. Кроме того, я настроил исходное вложение jfxrt.jar так, чтобы оно указывало на C:/Program Files/Java/jdk1.8.0_25/javafx-src.zip в Java->Установленные JRE. Теперь я куда-то попал :-) - person Oliver; 26.10.2014

Проект e(fx)clipse направлен на решение этой проблемы, большое спасибо Тому Шиндлу:

http://www.eclipse.org/efxclipse/install.html

Я скачал ночную сборку SDK (на данный момент основанную на 4.4RC3):

http://downloads.efxclipse.bestsolution.at/downloads/nightly/sdk/
person erdal.karaca    schedule 29.06.2014
comment
Вы также можете установить плагин из Eclipse Marketplace (текущая версия 0.9.0. Забавно, что это требуется для IDE, явно ориентированной на Java 8... - person mmey; 04.07.2014

Наконец, добавление правил доступа к файлу «.classpath» в проекте eclipse решило эту проблему для меня.

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<accessrules>
            <accessrule kind="accessible" pattern="javafx/**"/>
        </accessrules>
    </classpathentry>   
person jayalalk    schedule 05.06.2015