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

#eclipse #javafx-8 #eclipse-luna

#eclipse #javafx-8 #eclipse-luna

Вопрос:

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

Ограничение доступа: тип ‘Application’ не является API (‘C:Program FilesJavajre8libextjfxrt.jar ‘)

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

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

Ответ №1:

Для доступа к JavaFX в Java8 с помощью Eclipse Luna (4.4):

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

Ответ №2:

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

  • Открыл свойства JRE проекта Eclipse с помощью контекстного меню в JRE
  • Вместо «Среды выполнения» я выбираю «Альтернативный JRE», а затем «jdk1.8.0_5» — в конечном итоге вам нужно настроить этот «Альтернативный JRE» перед

Комментарии:

1. Спасибо за это. Кроме того, я настроил исходное вложение «jfxrt.jar » чтобы указать на «C:/Program Files/Java/jdk1.8.0_25/javafx-src.zip » в «Java-> Установленные JREs». Теперь я кое-что понимаю 🙂

Ответ №3:

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

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

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

 http://downloads.efxclipse.bestsolution.at/downloads/nightly/sdk/
 

Комментарии:

1. Вы также можете установить плагин из Eclipse Marketplace (текущая версия 0.9.0. Забавно, что это требуется для IDE, явно ориентированной на Java 8…

Ответ №4:

Наконец, добавление правил доступа к файлу «.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>