Является ли JavaFX частью общедоступного API? - PullRequest
2 голосов
/ 20 октября 2019

Я работаю с кодом, который использует платформу JavaFX, и я столкнулся со следующей ошибкой из Eclipse при попытке импортировать класс Application из пакета javafx.application:

Access restriction: The type 'Application' is not API (restriction on 
required library rt.jar)

Я столкнулся с вышеуказанной ошибкойпри попытке импортировать классы из пакетов javafx.application, javafx.scene и javafx.stage.

Благодаря этому ответу я знаю, что проблема возникает из-за установленных ограничений доступаEclipse по умолчанию для предотвращения случайного использования классов, которые, по его мнению, не являются частью общедоступного API. Это относится к JavaFX? Кроме того, я также не уверен, что полностью понимаю, что означает, что пакет или класс должны быть в общедоступном API.

Ответы [ 2 ]

2 голосов
/ 20 октября 2019

Спасибо за ответы от @ Slaw и @ Бенджамина до @ ответа Флориана , думаю, теперь я могу дать ответ на мой вопрос:

JavaFX 2.2 и более поздние выпуски полностью интегрированы с Java SE 7 Runtime Environment (JRE) и Java Development Kit (JDK). Однако JavaFX больше не является частью стандартного JDK, как в Java SE 11. Вероятно, поэтому Eclipse обеспокоен и требует явных правил доступа к библиотеке.

Кроме того, комментарии помогли уточнить, что это не означает, что стабильность и будущая надежность JavaFX полностью неопределенны. На данный момент JavaFX является стабильным и разрабатывается как OpenJFX , который является частью проекта OpenJDK (бесплатная реализация Java SE с открытым исходным кодом). Последним выпуском является JavaFX 13.

Итак, JavaFX имеет «открытый» API, такой как пакеты javafx. *, И «частный» API, такой как пакеты com.sun.javafx. *. Тем не менее, текущее состояние JavaFX подразумевает, что, как библиотека, она должна быть задействована, как любая другая внешняя зависимость, поскольку она не связана со стандартом JDK / JRE.

0 голосов
/ 20 октября 2019

Короче говоря, JavaFX отсутствует в "общедоступном" Java API.

Java API содержит наиболее распространенные инструменты, необходимые разработчику, например, коллекции, сеть, различные парсеры и т. Д. ... Поэтому JavaFX отсутствует в общедоступном Java API.

Если вы хотите увидеть, какие инструменты включены, вы можете проверить эту ссылку https://docs.oracle.com/javase/7/docs/api/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...