2013-10-23 11 views
6

Sono su una macchina Linux Mint in cui ho installato l'ultima versione di Java (HotSpot VM 1.7.0_45) e utilizzando Gradle 1.8. Ho anche Groovy installato, versione 1.8.6, ma penso che non abbia importanza in quanto Gradle ha il suo groovy-all.jar.Gradle non riesce a trovare le classi JavaFX

Il mio problema è che non ho potuto compilare il mio progetto Groovy usando gradle perché le classi JavaFX non sembrano essere nel classpath. Gli errori sono come questo:

unable to resolve class javafx.scene.Node 
@ line 3, column 1. 
    import javafx.scene.Node 

fine ho fissato questo aggiungendo il seguente percorso hard-coded orribile nelle mie dipendenze:

compile files("/usr/lib/jvm/java-7-oracle/jre/lib/jfxrt.jar") 

C'è un modo migliore per aggiungere JavaFX per classpath compilazione di Gradle così che è visibile a tutti i miei progetti senza che io debba aggiungere questo a ciascuno di loro ??

Ho provato tutto quello che potevo immaginare:

  • aggiunto il jfxrt.jar allo standard JRE (ho confermato Gradle sta usando il mio Java Standard per l'esecuzione) cartella ext, in modo che ora posso compilare classi Java con javac ed eseguirli con java (so che in questa versione di Java il jar JavaFX dovrebbe essere già nel classpath del JDK, ma non posso ancora eseguire RUN, al contrario di compilare, la mia app Java prima di fare questo).
  • anche aggiunto un link simbolico allo stesso vaso nel classpath scanalato, in modo che io possa fare una cosa del genere mostrato di seguito dal guscio groove e funziona:

    importazione javafx.application.Application come A; println A

Questo funziona anche nella console Groovy.

Non funziona solo in Gradle!

Grazie per qualsiasi aiuto.

risposta

6

Utilizzare JavaFX Gradle Plugin.

JavaFX Gradle Plugin dovrebbe essere in grado di capire dove si trova il runtime JavaFX senza dover eseguire la configurazione manuale specifica per l'ambiente.

Per ulteriori informazioni sulla risoluzione del percorso di classe JavaFX (non correlata a Gradle), vedere: Compile code using JavaFX 2.0 (using command line).

Inoltre, se si utilizza Oracle Java 8 o più recente, le classi JavaFX si trovano ora sul percorso di classe di runtime predefinito per un'implementazione Oracle Java.

Per inciso, il build system for the entire JavaFX system is based on Gradle, quindi non vi è sicuramente alcuna incompatibilità tra JavaFX e Gradle.

+0

Grazie per le informazioni. – Renato

Problemi correlati