2012-12-06 6 views
5

を使用して、私は自分のシステムにインストールされた次のしている -コンパイルJavaFXのコードANT

Java version "1.7.0_09" 
JavaFX 2.0 SDK 
NetBeans 7.2.1 

私はそれは私にエラーメッセージを示すANTを使用してコードをコンパイルしようとしています -

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

のbuild.xmlが含まれています

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

他のコンパイルエラー:

オラクルのJava 8、 jfxrt.jar
[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; 
+0

クラスパス= ":C:\プログラムファイルは、\ .." があるはずですか。? –

+0

@AkselWillgert申し訳ありません!私はあなたのポイントを得ていないのですか?はい。指定されたパスは正しいです。何:略していますか?あなたのビルドスクリプトには –

+0

があります。あなたはいくつかの文字を持っています。あなたが削除することを提案していた:と何が起こるかを見る –

答えて

6

のJava 8の更新

デフォルトでクラスパス上にあるので、あなたはこの答えで説明するように明示的にクラスパスに追加する必要はありません。クラスパスにjfxrt.jarを追加すると、Javaの7

jre\libから jfxrt.jarがクラスパスに設定されていないため、コンパイルの問題だった

のためにのみ必要です。

ant-javafx.jar値に指定されたパスがファイルシステム上の有効なファイルを指していないため、taskdefエラーが発生しました。

私もパスをseperatingでとパスを指定するには、/ではなく\を使用して:ではなく;を使用して周りに問題があるかもしれないと思ったが、アリはそれらの事についてかなり寛容なようですので、彼らはそうでは重要ではありません。すべて。

非常にわずかに修正された私のために働くビルドスクリプトのバージョンに基づいてsample projectを作成しました(taskdefの警告もコンパイルエラーもありません)。これはjdku9 windows 64bit用に設定されています。別のバージョンのjdkを使用している場合は、スクリプト内のパスを適切に調整する必要があります。インストールしたJDKのバージョンをどのビットをチェック - それは64ビット、あなたがC:\Program Files\Java\...を使用している場合、それは32ビットであるならば、あなたはC:\Program Files (x86)\Java\...

を使用するサンプルプロジェクトの結果としてアプリケーションが使用して実行可能である:

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

サンプルのビルドスクリプトは非常に基本的なものであり、実際にはあなたを動かすためのスタータースクリプトとして提供されていることに注意してください。あなたはクリックスルージャーのような機能をサポートする適切にパッケージ化されたアプリケーションを保証するために、adding ant tasks for further deployment tasksfx:deployのような)を使うことをお勧めします。どちらか、またはNetBeansを使用して、適切なAntビルドファイルを生成させます。

私はリンクされたサンプルアプリケーションです(ant 1.8.4で)を構築するために用いられる変性Antスクリプト:

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

非常にありがとうございます。 :) –

+0

私はJava 8を除いて同じ問題を抱えています。 – TheCoffeeCup

+0

@TheCoffeeCup私はあなたのための提案はありません。私の答えで述べたように、jfxrt.jarはOracle Java 8クラスのパス上にあるため、この問題はOracle Java 8で発生するとは思われません。 – jewelsea

関連する問題