2012-01-18 17 views
7

Ho un progetto Maven che mostra solo un grafico sull'asse xy. Voglio cambiare quel grafico in un grafico a linee Javafx 2.0 per visualizzare gli stessi dati. Ho provato a utilizzare il plugin FEST-javafx-maven, ma non riesco ancora a compilare il codice; il compilatore non riesce a trovare tutte le importazioni di javafx.xxx.Come posso aggiungere una classe JavaFX 2.0 a un progetto Maven esistente?

Qualsiasi aiuto sarebbe apprezzato.

risposta

7

aggiornamento (ottobre 6 2015)

moderne versioni JavaFX (fornito con Oracle Java 8+) non richiedono alcuna ulteriore percorso della classe da utilizzare JavaFX. Il runtime JavaFX si trova sul percorso di classe predefinito utilizzato da Java per la compilazione e l'esecuzione. Ciò significa che un semplice file maven pom.xml, senza dipendenze aggiuntive, costruirà un'applicazione JavaFX.

Tuttavia, se si desidera utilizzare funzionalità di imballaggio aggiuntive per l'applicazione, ad esempio la possibilità di distribuirlo come self-contained application, si consiglia di utilizzare la (terza parte) JavaFX Maven plugin.

risposta Precedente

le seguenti informazioni in questa risposta è ora in gran parte vecchio e obsoleto.

Il link per il plugin Maven fest ho trovato (http://fest.easytesting.org/javafx/maven/) è quello di uno strumento per la costruzione di progetti di script 1.x JavaFX, che è una bestia completamente diversa e incompatibile per JavaFX 2.0 - Non sono sicuro se c'è un versione aggiornata del plugin fest maven che supporta JavaFX 2.0.

Attualmente non esiste un supporto ufficiale per Maven da Oracle, né una versione di JavaFX 2.0 in un repository Maven ospitato pubblicamente.

Tuttavia, ho costruito con successo JavaFX progetti 2.0 utilizzando Maven in passato utilizzando un sistema con scope dipendenza dal jfxrt.jar e (opzionalmente) invocando i compiti JavaFX formica da Maven.

Se si sta incorporando il grafico in un'applicazione Swing esistente tramite JFXPanel, non è necessario utilizzare le attività ant JavaFX. Aggiungi jfxrt.jar dal runtime JavaFX come dipendenza di sistema O installalo manualmente nel tuo repository di maven per utilizzare una dipendenza con ambito non di sistema.

Un esempio del comando per installare manualmente il JavaFX 2.0 vaso runtime richiesta è:

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 

Dopo aver eseguito il comando precedente, aggiungere la dipendenza al file jfxrt.jar al POM Maven e compilation del progetto dovrebbe risolvere tutti i riferimenti API JavaFX:

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

Se si estende la classe Application JavaFX e si desidera che l'applicazione confezionato per la distribuzione via WebStart, il browser incorporare o come un vaso cliccabile installazione JavaFX consapevoli, allora si dovrebbe adattare il file pom.xml per eseguire le attività relative a JavaFX 2.0 ant - http://code.google.com/p/willow-browser/source/browse/pom.xml dimostra tale adattamento.

Queste discussioni discutono di JavaFX 2.0 Maven supportare e fornire ulteriori informazioni di sfondo e campioni:

+0

Grazie per tutto il vostro aiuto. –

+0

Quello che sto cercando di fare è sostituire un JPanel esistente con un grafico, con un diagramma JFX2.0. Posso farlo senza dover ridisegnare l'intero JFrame ecc.? –

+0

Sì, basta sostituire JPanel con un JFXPanel, vedere qui per documentazione => http://docs.oracle.com/javafx/2.0/api/javafx/embed/swing/JFXPanel.html – jewelsea

3

Ho avuto lo stesso problema e qui è la mia soluzione:

Se si utilizza Java 7u7 (JavaFX è integrato in jdk/jre):

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

Per le precedenti versioni di 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> 

e si deve impostare il sistema JAVAFX_HOME variabile casa dir di JavaFX.

0

Si potrebbe provare il JavaFX Maven plugin. Questo si occupa dell'aggiunta di javafx al classpath, nonché della creazione di app JavaFX e della creazione di file eseguibili Windows/Mac/Linux, nonché di file JAR e JNLP a doppio clic.

0

Utilizzando JDK 1.7 è necessario eseguire il seguente obiettivo mvn.

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

Questo comando cambierà il classpath del JRE e copiare il jfxrt.jar nella directory JAVA_HOME \ lib \ ext.

Prendere uno sguardo ulteriore qui per ulteriori informazioni: JavaFX Maven Plugin

All'interno del vostro pom-file che si devono aggiungere la seguente configurazione dipendenza.

 <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> 
Problemi correlati