2012年6月18日月曜日

JavaFXのApplication Threadと戯れる

みなさんJavaFXで遊んでいますか?

みけです。

ふと気になったこと


Fx-Js-JUnitはいい感じに出来上がりつつ有るのですが、

そういえば、複数のJavaFXアプリケーションを起動できるのか

気になったので、ちょっとやってみました。




複数のスレッドからJavaFXアプリケーションを起動することで同時実行できるか確認します。




JavaFXアプリケーションはGroovyで書いているので、Class#forName(java.lang.String)

使っています。

JavaFXアプリケーションはこんな感じです。





では、おもむろに実行します。




java.lang.IllegalStateExceptionが出てますね。

アプリケーションの起動は一回までと怒られています。


(´・ω・`)

JavaFXアプリケーションの同時実行はできないようです。


じゃあシングルスレッドならどうなの?


マルチスレッドでJavaFXアプリケーションを起動できないなら、

シングルスレッドで何度も起動できるのか?

これも試してみました。




単純にApplication#launch(java.lang.Class)Platform#exit()を繰り返す

コードです。

例のごとく、JavaFXのアプリケーション本体はGroovyで記述しています。





では起動してみましょう。





一回目の起動時はちゃんと起動して終了まで行っていますね。

ただ二回目以降はすべて落ちているようです。


結論


JavaFXアプリケーションは二度以上起動することはできぬ!

0 件のコメント:

コメントを投稿