2013-10-23 19 views
6

私はLinux Mintマシンを使用しています。私はJavaの最新バージョン(HotSpot VM 1.7.0_45)をインストールし、Gradle 1.8を使用しています。 Groovyもインストールされていますが、バージョン1.8.6ですが、Gradleにはgroovy-all.jarがあるので問題はありません。GradleがJavaFXクラスを見つけることができません

私の問題は、JavaFXクラスがクラスパスにないように私のGroovyプロジェクトをgradleでコンパイルできないということです。エラーは、このようなものです:

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

が、私はようやく私の依存関係に次のように恐ろしいハードコーディングされたパスを追加することで、これを固定:

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

そうのGradleのコンパイル時クラスパスにJavaFXのを追加するための良い方法はありますこれを私のプロジェクトすべてに見せることができます。

私は、私が想像できるすべてのものを試してみました:私は今、Javaクラスをコンパイルすることができるように

  • は、標準JRE(私はGradleのを実行するために私の標準のJavaを使用している確認)extフォルダにjfxrt.jarを追加しましたjavacを使って実行してjavaで実行してください(このJavaのバージョンでは、JavaFX jarはすでにJDKのクラスパスにあるはずですが、これを実行する前にJavaアプリケーションをコンパイルするのではなく実行できませんでした)。私はグルーヴィーなシェルから、以下に示すような何かを行うことができますように
  • も、グルーヴィークラスパスに同じjarファイルへのソフトリンクを追加し、それが動作します:

    輸入javafx.application.Applicationをとして、 println A

これはGroovy Consoleでも機能します。

Gradleでは動作しません!

ありがとうございました。

答えて

6

JavaFX Gradle Pluginを使用してください。

JavaFX Gradle Pluginは、JavaFXランタイムの場所を手動で環境固有の設定をせずに実行できるはずです。

JavaFXクラスパス解決(Gradle関連ではありません)の詳細については、 Compile code using JavaFX 2.0 (using command line)を参照してください。

また、Oracle Java 8以降を使用している場合、JavaFXクラスはOracle Java実装のデフォルトのランタイム・クラスパスになります。

ちなみに、build system for the entire JavaFX system is based on Gradleは、JavaFXとGradleとの間に互換性がありません。

+0

ありがとうございました。 – Renato

関連する問題