Использование jfxrt.jar в плагине Eclipse Kepler (SR2)

1

я играю с Eclipse 4 Application и Java 8, в настоящее время в Eclipse Kepler SR2. Есть различные подводные камни, которые я не понимаю, поэтому я ищу вашу помощь:

Когда я создаю новый подключаемый модуль в среде Java 8 (JDK), jfxrt.jar указан в JRE System Libraries в моем проекте.

Когда я пытаюсь получить доступ к классу jfxrt, я получу ошибку (Discouraged Access). Я попытался решить ошибку, корректируя путь сборки, создав правило доступа (*/) к моей библиотеке JRE. Иногда это работало, и мне приходилось иногда настраивать параметры компилятора для обескураженного доступа.

Впоследствии я мог получить доступ к классам и скомпилировать их, но когда я пытаюсь запустить (debug), классы по-прежнему не видны плагину:

java.version=1.8.0
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE
Framework arguments:  -product de.fsch.ibot.app.product -clearPersistedState
Command-line arguments:  ... -consoleLog -clearPersistedState

!ENTRY org.eclipse.osgi 4 0 2014-04-03 09:15:12.790
!MESSAGE Application error
!STACK 1
.
.
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

Любые предложения для меня?

Теги:
javafx
osgi
eclipse-rcp

2 ответа

1
  1. ограниченный доступ - да, причина в том, что JavaFX находится на пути класса расширения, поэтому он рассматривается как деталь реализации VM от Eclipse
  2. Проблема времени выполнения заключается в том, что пакеты JavaFX НЕ являются частью любого EE, поэтому вы не можете найти их в OSGi-Env
  3. Не имеет смысла использовать запуск JavaFX-приложения внутри плагина SWT-IDE там, где вы используете FXCanvas, что приведет к следующей проблеме, потому что это не относится к любому пути к классам вообще, потому что это зависит от SWT (вы находите его в своем JRE/Library/jfxswt.jar)

Мое предложение: сделайте себе одолжение и установите e (fx) клипсе, например, вы можете получить все в одной загрузке с http://efxclipse.bestsolution.at/install.html или использовать сайт обновлений с http://www.efxclipse.org/install.html и следуйте https://wiki.eclipse.org/Efxclipse/Tutorials/Tutorial2, если вы хотите пойти чистым fx (без участия swt), затем https://wiki.eclipse.org/Efxclipse/Tutorials/Tutorial3 и https://wiki.eclipse.org/Efxclipse/Tutorials/Tutorial4, вероятно, вам интересны

0

Для ограниченного доступа сделайте следующее: перейдите к свойствам проекта, пути сборки Java, библиотекам.

  • Удалите "JRE System Library [java8]" вещь
  • .. а затем добавьте его снова, используя "Добавить библиотеку" -button → Системная библиотека JRE → Рабочая область по умолчанию (если она установлена на Java 8 в рабочей области, если нет, выберите другой вариант здесь).

Получил это от этого SO ответа.

Раздражающе, это сработало для меня!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню