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

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

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

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

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

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

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

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

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

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. перейдите на вкладку файлы (обычно вы находитесь на вкладке Проект).
  2. разверните узел для вашего проекта > разверните узел nbproject > откройте " проект.файл свойств.
  3. находим строку javafx.deploy.includeDT=true, и правда в false.

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


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


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

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


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

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