Ответ 1
Местоположение jfxrt.jar в Oracle Java 7:
<JRE_HOME>/lib/jfxrt.jar
Расположение jfxrt.jar в Oracle Java 8:
<JRE_HOME>/lib/ext/jfxrt.jar
<JRE_HOME>
будет зависеть от того, где вы установили Oracle Java и может отличаться от дистрибутивов Linux и установок.
jfxrt.jar не находится в Linux OpenJDK 7 (это то, что вы используете).
Доступен пакет с открытым исходным кодом, который обеспечивает JavaFX 8 для систем на базе Debian, таких как Ubuntu. Для установки этого пакета необходимо установить пакет Debian OpenJDK 8 и пакет Debian OpenJFX. Я не запускаю Debian, поэтому я не уверен, где пакет Debian OpenJFX устанавливает jfxrt.jar.
Используйте Oracle Java 8.
С Oracle Java 8 JavaFX входит в состав JDK и находится по пути класса по умолчанию. Это означает, что классы JavaFX будут автоматически найдены как компилятором во время сборки, так и временем выполнения, когда ваши пользователи используют ваше приложение. Поэтому использование Oracle Java 8 в настоящее время является лучшим решением вашей проблемы.
OpenJDK для Java 8 может включать JavaFX (поскольку JavaFX для Java 8 теперь является открытым исходным кодом), но он будет зависеть от ассемблеров пакета OpenJDK от того, захотят ли они включить JavaFX 8 с их дистрибутивами. Я надеюсь, что они это сделают, поскольку это должно помочь устранить путаницу, с которой вы столкнулись в своем вопросе, а также обеспечивает гораздо большую функциональность в OpenJDK.
Я понимаю, что хотя JavaFX был включен со стандартным JDK с версии JDK 7u6
Да, но только Oracle JDK.
Версия JavaFX в комплекте с Java 7 не была полностью открытым исходным кодом, поэтому она не могла быть включена в OpenJDK (это то, что вы используете).
В том, что вам нужно использовать Java 7 вместо Java 8, вы можете загрузить Oracle JDK для Java 7 и использовать это. Затем JavaFX будет включен в Java 7. Из-за того, как Oracle настроил Java 7, JavaFX не будет находиться в пути к классам. Если вы используете Java 7, вам нужно добавить его в свой путь к классам и использовать соответствующие инструменты для упаковки JavaFX, чтобы позволить вашим пользователям запускать ваше приложение. Некоторые инструменты, такие как e (fx) clipse и тип проекта NetBeans JavaFX, будут заботиться о проблемах с классом и задачах упаковки для вас.