Tengo instalado en mi sistema –

 Java version "1.7.0_09"
 JavaFX 2.0 SDK 
 NetBeans 7.2.1

Cuando estoy tratando de compilar el código mediante HORMIGA me muestra el mensaje de error –

Could not load definitions from resource com/sun/javafx/tools/ant/antlib.xml. It could not be found. 

Build.XML contiene

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

Otros Errores De Compilación:

[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\ ..».: ?
Lo siento! No estoy llegando a su punto? Sí.. El camino dado es correcta. Lo .: representa?
en su buildscript tiene algunos caracteres no me recon. Yo estaba sugiriendo que quitar .: y a ver qué pasa
Bien.
Eliminado antes de comentar e hizo una exposición de respuesta fuera de ella.

OriginalEl autor Ashish Pancholi | 2012-12-06

1 Comentario

  1. 7

    Actualización para Java 8

    En Oracle Java 8, jfxrt.jar es la clase en la ruta de acceso por defecto, así que no es necesario añadir explícitamente a la ruta de clases como se describe en esta respuesta. La adición de jfxrt.jar a la ruta de clases sólo es necesario para Java 7.


    El problema de compilación fue porque jfxrt.jar de jre\lib no se estableció en la ruta de clases.

    La taskdef error fue causado porque la ruta de acceso especificada para ant-javafx.jar valor no apunta a un archivo válido en el sistema de ficheros.

    Pensé que también podría haber problemas en torno al uso de un : en lugar de un ; en separar los caminos y en el uso de / en lugar de \ para especificar las rutas, pero hormiga parece bastante indulgente acerca de esas cosas, así que probablemente no le importaba en absoluto.

    He creado un proyecto de ejemplo basa en una versión ligeramente modificada de la construcción de la secuencia de comandos que ha trabajado para mí (no taskdef de advertencia y no hay errores de compilación). Está configurado para jdku9 de windows de 64 bits. Si usted está utilizando una versión diferente de la versión de jdk, usted tendrá que ajustar las rutas de acceso de la secuencia de comandos de forma adecuada. Verificación de bits de la versión del jdk que se han instalado – si es de 64 bits, a continuación, utilizar C:\Program Files\Java\..., si es de 32 bits, a continuación, utilizar C:\Program Files (x86)\Java\...

    La resultante de la aplicación para el proyecto de ejemplo es ejecutable mediante:

    java -classpath "c:\Program Files (x86)\Java\jdk1.7.0_09\jre\lib\jfxrt.jar;XYZ\lib\ScenicView.jar;XYZ\build\XYZ" FriendFinder

    Tenga en cuenta que el script de compilación en el ejemplo es muy básico y es realmente solo como un motor de arranque secuencia de comandos para ponerse en marcha. La mejor también la adición de tareas ant para más tareas de implementación (como fx:deploy) para garantizar una correcta aplicación empaquetada, que soporta características como un click-to-run de la jarra. O eso, o el uso de NetBeans y se deja de generar apropiado ant build archivos para usted.

    La modificación de la hormiga script que se utiliza para construir (con ant 1.8.4) la aplicación de ejemplo que he enlazado es:

    <project name="XYZ" default="XYZ" basedir="XYZ" xmlns:fx="javafx:com.sun.javafx.tools.ant">    
        <property name="srcXYZ" location="src/XYZ"/>
        <property name="buildXYZ" location="build/XYZ"/>    
        <property name="classpath" location="C:\Program Files (x86)\Java\jdk1.7.0_09\jre\lib\jfxrt.jar;lib\ScenicView.jar"/>
    
        <target name="init">
            <tstamp/>
            <mkdir dir="${buildXYZ}"/>  
        </target> 
    
        <target name="XYZ" depends="init">
            <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"      
        uri="javafx:com.sun.javafx.tools.ant" classpath=".:C:\Program Files (x86)\Java\jdk1.7.0_09\lib\ant-javafx.jar"/>    
            <javac includeantruntime="false" classpath="${classpath}" srcdir="${srcXYZ}" destdir="${buildXYZ}"/>
        </target>
    </project>  
    Muchas Gracias. 🙂
    Tengo el mismo problema, excepto con java 8. Qué iba a hacer entonces?
    No tengo sugerencias para usted. Como he dicho en mi respuesta, yo no esperaría que este problema ocurre con Oracle Java 8 jfxrt.jar es en el Oracle Java 8 ruta de clase.

    OriginalEl autor jewelsea

Dejar respuesta

Please enter your comment!
Please enter your name here