2012-01-18 12 views
7

Mam projektu Maven, który po prostu wyświetla wykres na osi XY. Chcę zmienić ten wykres na linakart Javafx 2.0, aby wyświetlić te same dane. Próbowałem używać wtyczki FEST-javafx-maven, ale nadal nie mogę skompilować kodu; kompilator nie może znaleźć wszystkich importów javafx.xxx.Jak dodać klasę JavaFX 2.0 do istniejącego projektu Maven?

Każda pomoc zostanie doceniona.

Odpowiedz

7

Aktualizacja (paź 6 2015)

Nowoczesne wersje JavaFX (dostarczana z Oracle Java 8+) nie wymaga żadnej dodatkowej ścieżki klasy użyć JavaFX. Środowisko wykonawcze JavaFX znajduje się w domyślnej ścieżce Classpath, którą używa Java do kompilacji i wykonywania. Oznacza to, że prosty plik pom.xml maven, bez dodatkowych zależności, zbuduje aplikację JavaFX.

Jeśli jednak chcesz korzystać z dodatkowych funkcji związanych z opakowaniem w swojej aplikacji, takich jak możliwość wdrożenia go jako self-contained application, radzę użyć (trzeciej strony) JavaFX Maven plugin.

poprzedniej odpowiedzi

Poniższe informacje w tej odpowiedzi jest obecnie w większości stare i nieaktualne.

Link do wtyczki fest maven (http://fest.easytesting.org/javafx/maven/) jest narzędziem do tworzenia projektów skryptów JavaFX 1.x, który jest zupełnie inną i niekompatybilną bestią do JavaFX 2.0 - nie jestem pewien, czy istnieje zaktualizowana wersja wtyczki fest maven, która obsługuje JavaFX 2.0.

Obecnie nie ma oficjalnego wsparcia dla Maven z Oracle, ani wersji JavaFX 2.0 w publicznie hostowanym repozytorium Maven.

Jednak udało mi się pomyślnie zbudować projekty JavaFX 2.0 przy użyciu narzędzia w przeszłości, korzystając z zależności zależnej od systemu na jfxrt.jar i (opcjonalnie) wywołując zadania mrówki JavaFX z maven.

Jeśli osadzasz wykres w istniejącej aplikacji Swing za pośrednictwem JFXPanel, nie musisz używać zadań Ant JavaFX. Dodaj plik jfxrt.jar z środowiska wykonawczego JavaFX jako zależność systemową LUB ręcznie zainstaluj go w swoim repozytorium maven, aby użyć zależności bez zasięgu systemu.

Przykładem polecenia, aby ręcznie zainstalować wymagane JavaFX 2.0 wykonawczego słoik jest:

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 

Po uruchomieniu powyższego polecenia, dodać zależność do pliku jfxrt.jar do pom maven i kompilacji projektu należy rozwiązać wszelkie odniesienia API JavaFX:

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

Jeśli rozszerzyć klasę aplikacji JavaFX i chcesz, aby aplikacja pakowane do wdrożenia poprzez webstart, przeglądarki osadzania lub jako instalacja JavaFX świadomy klikalne słoika, to należy dostosuj plik pom.xml, aby wykonać odpowiednie zadania z JavaFX 2.0 - http://code.google.com/p/willow-browser/source/browse/pom.xml demonstruje taką adaptację.

Wątki omawiają JavaFX 2.0 Maven wsparcie i dostarczyć dalszych informacji tła i próbek:

+0

Dzięki za całą pomoc sofar. –

+0

Naprawdę staram się zastąpić istniejący JPanel, który ma wykres, linechartem JFX2.0. Czy to możliwe bez przerysowywania całego JFrame itp? –

+0

Tak, wystarczy wymienić JPanel na JFXPanel, zobacz tutaj dokumentację => http://docs.oracle.com/javafx/2.0/api/javafx/embed/swing/JFXPanel.html – jewelsea

3

Miałem ten sam problem i tutaj jest moje rozwiązanie:

przypadku korzystania 7u7 Java (JavaFX jest zintegrowane z jdk/jre):

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

poprzednie wersje 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> 

I musisz ustawić zmienną systemową JAVAFX_HOME na katalog domowy JavaFx.

0

Możesz spróbować JavaFX Maven plugin. Dba o to, aby dodać javafx do ścieżki klasy, jak również budować aplikacje JavaFX i tworzyć pliki wykonywalne Windows/Mac/Linux, a także podwójne pliki JAR i JNLP.

0

Używając JDK 1.7, musisz wykonać następujący cel mvn.

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

Polecenie to zmieni ścieżkę klas swojego JRE i skopiuj jfxrt.jar do katalogu lib \ ext \ JAVA_HOME.

podjąć dodatkowe obejrzenia tutaj aby uzyskać dodatkowe informacje: JavaFX Maven Plugin

W swoim pom-pliku trzeba dodać następującą konfigurację zależnościach.

 <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> 
Powiązane problemy