18
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gradle で JavaFX をコンパイルできるようにする

Posted at

Java 8 から JavaFX を標準で使えるようになりました。

ですが、JavaFX のソースコードを Gradle でコンパイルしようとすると、
「unable to resolve class javafx.scene.Parent」というような具合に
JavaFX 関連のクラスが見つからないため、コンパイルエラーになります。

原因:jfxrt.jar にクラスパスが通っていないから

調べてみると Gradle でコンパイルするとき、/lib/ext/jfxrt.jar にクラスパスが通っていないようです。

IntelliJ IDEA などの IDE で Java 8 を JDK として設定すると、
この jfxrt.jar にクラスパスが通った状態になっています。

そのため、IDE で動かすとうまく行くけれど Gradle ではビルドできないという事象になっています。

解決策1:JavaFX Gradle Plugin を使う

Gradle で JavaFX を使えるようにするプラグインがあります。
http://speling.shemnon.com/blog/2013/05/18/javafx-gradle-plugin-0-dot-3-0-released/

このプラグインを使おうと色々とがんばってみましたが、うまくいきませんでした。
プラグインがあるリポジトリが見つからないようでした。

ということで、以下自力で…

解決策2:jfxrt.jar をクラスパスに追加する

/lib/ext/jfxrt.jar にクラスパスが通っていないので、
クラスパスに追加するよう build.gradle の dependencies に1行追加します。

dependencies {
    compile files("${System.properties['java.home']}/lib/ext/jfxrt.jar")
}

これで Gradle がコンパイルするときに JavaFX 関連のクラスを参照できるようになります。

適切な解決策かどうかわかりませんが、とりえあずビルドしたり、テストしたりできます。

18
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?