Compiler JavaFX Code à l'aide de FOURMI
J'ai de suite installé sur mon système
Java version "1.7.0_09"
JavaFX 2.0 SDK
NetBeans 7.2.1
Quand j'essaye de compiler le code à l'aide de ANT-il en me montrant message d'erreur -
Could not load definitions from resource com/sun/javafx/tools/ant/antlib.xml. It could not be found.
Build.XML contient
<project name="XYZ" default="XYZ" basedir="XYZ" xmlns:fx="javafx:com.sun.javafx.tools.ant">
<description>
simple example build file
</description>
<!-- set global properties for this build -->
<property name="srcXYZGenerator" location="src/XYZGenerator"/>
<property name="classpath" location="lib/XYZLib.jar;lib/ABC.jar;lib/IJK.jar;"/>
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${buildXYZ}"/>
</target>
<target name="XYZ" depends="init">
<!-- Compile the java code from ${src} into ${build} -->
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
uri="javafx:com.sun.javafx.tools.ant" classpath=".:C:\Program Files\Java\jdk1.7.0_09\lib\ant-javafx.jar"/>
<javac classpath="${classpath}" srcdir="${srcXYZ}" destdir="${buildXYZ}"/>
</target>
</project>
D'Autres Erreurs De Compilation:
[javac] C:\Users\JavaUser4\Desktop\XYX2012.12FX\XYZ\src\Utility\net\XYZ\javafx\queue\DefaultStatisticsHandlerController.java:19: error: package javafx.scene does not exist
[javac] import javafx.scene.Node;
[javac] ^
[javac] C:\Users\JavaUser4\Desktop\XYZ2012.12FX\XYZ\src\Utility\net\XYZ\javafx\queue\DefaultStatisticsHandlerController.java:20: error: package javafx.scene.control does not exist
[javac] import javafx.scene.control.Button;
[javac] ^
[javac] C:\Users\JavaUser4\Desktop\XYZ2012.12FX\XYZ\src\Utility\net\XYZ\javafx\queue\DefaultStatisticsHandlerController.java:21: error: package javafx.scene.control does not exist
[javac] import javafx.scene.control.Label;
[javac] ^
[javac] C:\Users\JavaUser4\Desktop\XYZ2012.12FX\XYZ\src\Utility\net\XYZ\javafx\queue\DefaultStatisticsHandlerController.java:22: error: package javafx.scene.input does not exist
[javac] import javafx.scene.input.MouseEvent;
classpath=".:C:\Program files\ .." devrait y être .: ?
Désolé! Je ne reçois pas votre point de vue? Oui.. Le chemin d'accès est correct. Ce .: signifie?
dans votre buildscript vous avez quelques personnages que je ne recon. Je suggère que vous retirez .: et voir ce qui se passe
Ok.
Supprimés avant le commentaire et a fait un exposé réponse.
Désolé! Je ne reçois pas votre point de vue? Oui.. Le chemin d'accès est correct. Ce .: signifie?
dans votre buildscript vous avez quelques personnages que je ne recon. Je suggère que vous retirez .: et voir ce qui se passe
Ok.
Supprimés avant le commentaire et a fait un exposé réponse.
OriginalL'auteur Ashish Pancholi | 2012-12-06
Vous devez vous connecter pour publier un commentaire.
Mise à jour pour Java 8
Dans Oracle Java 8,
jfxrt.jar
est sur le chemin de classe par défaut, de sorte que vous n'avez pas besoin d'ajouter explicitement le chemin de classe, comme décrit dans cette réponse. L'ajout dejfxrt.jar
au classpath n'est nécessaire que pour Java 7.La compilation problème était que
jfxrt.jar
dejre\lib
n'était pas défini dans le classpath.La taskdef erreur a été causé parce que le chemin d'accès spécifié à
ant-javafx.jar
la valeur n'est pas un fichier valide sur votre système de fichiers.Je pensais qu'il pouvait aussi être des questions autour de l'aide d'un
:
plutôt qu'un;
en séparant les chemins et dans l'utilisation de/
plutôt que\
spécifier les chemins d'accès, mais fourmi semble assez indulgent sur ces choses, afin qu'ils probablement ne pas affaire à tous.J'ai créé un exemple de projet basé sur une version légèrement modifiée de votre script ant qui a fonctionné pour moi (pas de taskdef avertissement et sans erreurs de compilation). Il est mis en place pour jdku9 windows 64 bits. Si vous utilisez une autre version du jdk, vous aurez besoin d'ajuster les chemins d'accès dans le script de façon appropriée. Vérifier les bits de la version du jdk que vous avez installé - si il est en 64 bits alors que vous utilisez
C:\Program Files\Java\...
, si il est en 32 bits alors que vous utilisezC:\Program Files (x86)\Java\...
L'application qui en résulte pour le projet de l'échantillon est exécutable à l'aide de:
Noter que le script de construction de l'échantillon est très basique et il est vraiment juste fourni comme un démarreur de script pour vous allez. Vous êtes mieux lotis aussi l'ajout de tâches ant pour plus de tâches de déploiement (comme
fx:deploy
) pour assurer correctement emballés application qui prend en charge des fonctionnalités comme un click-to-run jar. Soit ça, ou l'utilisation de NetBeans et de le laisser générer des ant fichiers pour vous.La modification de script ant j'ai utilisé pour construire (avec ant 1.8.4) l'application d'exemple j'ai fait un lien est:
J'ai eu le même problème, sauf avec java 8. Ce qui serait fait alors?
Je n'ai pas de suggestions pour vous. Comme je l'ai dit dans ma réponse, je ne m'attends pas ce problème avec Oracle Java 8 jfxrt.jar est sur l'Oracle Java 8 chemin de classe.
OriginalL'auteur jewelsea