Как я могу добавить класс JavaFX 2.0 в существующий проект Maven? - PullRequest
8 голосов
/ 18 января 2012

У меня есть проект Maven, который просто отображает график на оси xy. Я хочу изменить этот график на линейную диаграмму Javafx 2.0 для отображения тех же данных. Я попытался использовать плагин FEST-javafx-maven, но все еще не могу скомпилировать код; компилятор не может найти весь импорт javafx.xxx.

Любая помощь будет оценена.

Ответы [ 4 ]

8 голосов
/ 19 января 2012

Обновление (6 октября 2015 г.)

Современные версии JavaFX (поставляются с Oracle Java 8+) не требуют какого-либо дополнительного пути к классам для использования JavaFX. Среда выполнения JavaFX находится на пути к классам по умолчанию, который Java использует для компиляции и выполнения. Это означает, что обычный файл maven pom.xml без дополнительных зависимостей будет создавать приложение JavaFX.

Однако, если вы хотите использовать для своего приложения дополнительные функции упаковки, такие как возможность развертывания его как автономного приложения , тогда я советую использовать (1009) JavaFX Плагин Maven .

Предыдущий ответ

Следующая информация в этом ответе теперь в основном старая и устаревшая.

Ссылка на плагин fest maven, который я обнаружил (http://fest.easytesting.org/javafx/maven/), относится к инструменту для создания проектов сценариев JavaFX 1.x, который представляет собой совершенно другой и несовместимый зверь для JavaFX 2.0 - я не уверен, если обновленная версия плагина fest maven, поддерживающего JavaFX 2.0.

В настоящее время нет официальной поддержки Maven от Oracle, а также версии JavaFX 2.0 в общедоступном репозитории Maven.

Однако в прошлом я успешно создавал проекты JavaFX 2.0, используя maven, используя системную зависимость от jfxrt.jar и (опционально) вызывая задачи муравья JavaFX из maven.

Если вы встраиваете свой график в существующее приложение Swing через JFXPanel, вам не нужно использовать задачи Ant для JavaFX. Добавьте jfxrt.jar из среды выполнения JavaFX в качестве системной зависимости ИЛИ вручную установите его в свой репозиторий maven, чтобы использовать не системную зависимость.

Пример команды для ручной установки необходимого jar-файла JavaFX 2.0:

mvn install:install-file -Dfile="C:\Program Files\Oracle\JavaFX 2.1.0 SDK\rt\lib\jfxrt.jar" -DgroupId=com.oracle.javafx -DartifactId=javafx -Dversion=2.1 -Dpackaging=jar

После выполнения вышеуказанной команды добавьте зависимость к файлу jfxrt.jar в maven pom, и компиляция вашего проекта должна разрешить все ссылки на API JavaFX:

<dependency>
  <groupId>com.oracle.javafx</groupId>
  <artifactId>javafx</artifactId>
  <version>2.1</version>
</dependency>

Если вы расширяете класс JavaFX Application и хотите, чтобы ваше приложение было упаковано для развертывания через веб-запуск, встраивание в браузер или в виде интерактивного кликабельного jar-файла с поддержкой установки JavaFX, то вам следует адаптировать файл pom.xml для выполнения соответствующих задач Ant для JavaFX 2.0 - http://code.google.com/p/willow-browser/source/browse/pom.xml демонстрирует такую ​​адаптацию.

Эти темы обсуждают поддержку JavaFX 2.0 maven и предоставляют дополнительную справочную информацию и примеры:

3 голосов
/ 02 октября 2012

У меня была та же проблема, и вот мое решение:

При использовании Java 7u7 (javafx интегрирован в jdk / jre):

    <dependency>
        <groupId>javafx</groupId>
        <artifactId>javafx</artifactId>
        <version>2.1</version>
        <scope>system</scope>
        <systemPath>${java.home}/lib/jfxrt.jar</systemPath>
    </dependency>

Для предыдущих версий Java:

    <dependency>
        <groupId>javafx</groupId>
        <artifactId>javafx</artifactId>
        <version>2.1</version>
        <scope>system</scope>
        <systemPath>${env.JAVAFX_HOME}\rt\lib\jfxrt.jar</systemPath>
    </dependency>

И вы должны установить системную переменную JAVAFX_HOME в домашний каталог JavaFx.

0 голосов
/ 06 октября 2015

Используя JDK 1.7, вы должны выполнить следующую цель mvn.

  mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath   

Эта команда изменит путь к классу вашей JRE и скопирует jfxrt.jar в каталог JAVA_HOME \ lib \ ext.

Дополнительную информацию смотрите здесь: Плагин JavaFX Maven

В вашем pom-файле вы должны добавить следующую конфигурацию зависимостей.

     <dependency>
        <groupId>javafx</groupId>
        <artifactId>jfxrt</artifactId>
        <version>2.2</version>
        <!-- <version>${javafx.min.version}</version> -->
        <scope>system</scope>
        <systemPath>${java.home}/lib/ext/jfxrt.jar</systemPath>
    </dependency>
0 голосов
/ 07 сентября 2013

Вы можете попробовать JavaFX Maven плагин .Это обеспечивает добавление javafx в путь к классам, а также создание приложений JavaFX и создание исполняемых файлов Windows / Mac / Linux, а также JAR-файлов с двойным щелчком мыши и файлов JNLP.

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