Kotlin+JavaFX 2.2でビルドする(追記あり)

(追記)この記事を公開した後、ちえさんからこんなツイートが…。

gistにコードをアップしてもらって、似たような感じに直したあと、確かにartifact設定のままでビルド通りました。また、何が違うのか試そうとコードを元に戻してから再度ビルドをかけたら、また通ってしまいました…。違いがわからないどころか、以前にビルドできなかった理由がわからなくなりました。うーん、謎い…。

もし、KotlinでJavaFxアプリの起動部分がどうしてもうまくいかない、という方のみ、以下を参考にしてみてください。

以下、原文


Kotlin+JavaFXでアプリを作ったら、使えるようにビルドしたいじゃないですか。

以前は以下のURLを参考にアプリをjarにまとめていました。
Kotlin + JavaFX 2.2の場合の実行可能jarを作成する

前はこれで動いたのですが、今の段階になって何故かおかしくなりました。
jarにはなるんだけれど、実行すると動作が変になってしまい…。

そもそもIntelliJにはartifactsを作るときにJavaFx Applicationがあるので、それを選びたいのですが、Kotlinで作ると実行用クラスが存在しないので、選べません。◯◯Packageを指定しても、ダメでした。

ふと思いついたのが、JavaFXを起動するところだけ、Javaで書いてしまう(!!)という方法です。
これを試したところ、artifactsでJavaFX Applicationを選択することができました!かつ、jarではなく、dmgなどの形式にすることができたので、こちらのほうが汎用性がよさそうです。

まぁJavaFXの起動部分もKotlinで書いた状態でJavaFX Applicationが選択できるようにIntelliJが進化してくれるまではこれで凌ぐほうがよいかなーと思います。


カテゴリー Java, Kotlin | タグ | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です