JavaFX отсутствует в JDK 1.7 / 1.8 в Linux?

У меня проблема, которая якобы невозможна, так что я чертовски много времени ищу ответ.

У меня последняя версия NetBeans 7.4, работающая на полностью обновленной Fedora 20 x64. Официально это может работать с JavaFX. Период. У меня есть как JDK из репо (1.7.something), так и самая последняя версия, которую я смог найти (1.8.0). Официально у них есть JavaFX. Период.

Если я попытаюсь создать новый проект JavaFX, он скажет следующее:

Не удалось автоматически настроить платформу JavaFX. Перейдите в диспетчер платформы, создайте платформу Java SE, отличную от используемой по умолчанию, затем перейдите на вкладку JavaFX, включите JavaFX и введите пути к действующему пакету SDK JavaFX и среде выполнения JavaFX. Примечание. JavaFX SDK можно загрузить с веб-сайта JavaFX.

Ну ладно, я привыкла путаться, думаю, я могу это исправить. Создайте новую платформу и ... там нет вкладки "JavaFX". Потребовалось небольшое исследование, чтобы даже выяснить, о чем идет речь, и в процессе я обнаружил, что вкладка была фактически удалена из 7.4. Потому что NetBeans 7.4 определенно распознает JavaFX автоматически. Период.

Переход на настоящий сайт JavaFX, как и ожидалось, говорит мне, что он связан с Java SE 7 JDK, который у меня уже есть. Период.

Поскольку конечный результат, которого я добиваюсь, технически может быть достигнут путем интеграции одного компонента JavaFX в мое приложение Swing, я попытался это сделать, но NetBeans по-прежнему не может найти ничего, связанного с JavaFX, и поэтому кричит на меня, если я попытаюсь импортировать такую ​​вещь.

Итак, учитывая, что вещи, которые должны работать просто, просто не ... Куда мне теперь идти?


person DigitalMan    schedule 10.02.2014    source источник
comment
Выполняли ли вы поиск в системе отслеживания проблем NetBeans или отправляли туда отчет об ошибке?   -  person Harald K    schedule 10.02.2014
comment
Вы используете Oracle JDK?   -  person Ben    schedule 11.02.2014
comment
@Ben ... Sunovab! # @ Ч, технически я полагаю, что нет! В репозиториях есть OpenJDK, и до сих пор я никогда не обнаруживал расхождений между ними.   -  person DigitalMan    schedule 11.02.2014
comment
При очень небольшом объеме работы OpenJDK и JavaFX в настоящее время отлично работают под Netbeans.   -  person Quaternion    schedule 27.09.2015


Ответы (3)


В настоящее время в Debian и Ubuntu (возможно, в других) JavaFX - это отдельный пакет от OpenJDK (openjdk-8-jdk), поэтому его необходимо установить:

sudo apt-get install libopenjfx-java libopenjfx-java-doc

Важная проблема (эта проблема не влияет на приложение Maven, JavaFX, поэтому, если это ваш предпочтительный метод сборки, игнорируйте следующую проблему):

Если вы попытаетесь создать новый проект: Категории> Проект JavaFX> JavaFXApplication

Ты получишь:

Internal error. Missing resources [/resources/web-files/javafx-loading-100x100.gif] 
/home/ken/NetBeansProjects/vestFxReports/nbproject/jfx-impl.xml:1465: The following error occurred while executing this line: 
/home/ken/NetBeansProjects/vestFxReports/nbproject/jfx-impl.xml:3093: The following error occurred while executing this line: 
/home/ken/NetBeansProjects/vestFxReports/nbproject/jfx-impl.xml:2055: Error: -includedt requires the java deployment toolkit, which is not included in this distribution 
BUILD FAILED (total time: 1 second)

Чтобы исправить указанную выше ошибку [здесь выполняются следующие шаги: http://hongouru.blogspot.com.uy/2015/09/solved-error-building-new-project-using.html]:

  1. Переключитесь на вкладку файлов (обычно вы находитесь на вкладке Project).
  2. Разверните узел вашего проекта> разверните узел nbproject> откройте файл "project.properties".
  3. Найдите строку javafx.deploy.includeDT=true и измените true на false.

Теперь вы можете создать и запустить приложение JavaFX в OpenJDK.


Дальнейшие действия, хотя помимо рассматриваемой проблемы вы, вероятно, в какой-то момент захотите загрузить построитель сцены JavaFX: http://www.oracle.com/technetwork/java/javafxscenebuilder-1x-archive-2199384.html

person Quaternion    schedule 26.09.2015

По-видимому, проблема действительно заключается в несоответствии между OpenJDK с открытым исходным кодом, предоставляемым большинством дистрибутивов Linux, и проприетарным Oracle JDK. Как ни странно, это хорошо известная проблема, но вам нужно специально искать ее, чтобы найти ее, и к тому времени вы уже знаете.

Решение состоит в том, чтобы загрузить официальный Oracle JDK и, при необходимости, создать соответствующую платформу в NetBeans (в данный момент находится под /usr/java/jdk...). После этого он должен работать нормально.

person DigitalMan    schedule 11.02.2014
comment
Несоответствие - это скорее неправильно понятая особенность OpenJDK, а именно: JFX был сделан независимым пакетом, тогда как в OralceJDK все это один большой шар. На самом деле нет никакой разницы, см. Мой ответ для получения дополнительной информации. - person Quaternion; 27.10.2015

Возможно официальная документация

может помочь вам настроить это

person Ben    schedule 10.02.2014