2014-07-27 158 views
0

我想從應用程序類的範圍之外的線程運行javafx應用程序。釷問題我使用一個while循環來生成應用程序,並且每當它被調用兩次時拋出一個非法狀態,所以我需要一種方法來區分應用程序是否已經運行,以繼續執行其他任務,任何想法?如何檢查javafx應用程序是否已經以編程方式運行?

+0

我不認爲你可以在另一個線程上運行任何javafx組件,除非它是主線程線程 – MadProgrammer

+0

爲什麼你想檢查你的應用程序是否已經在運行?你想只運行一個應用程序實例嗎? – ItachiUchiha

+1

你可以創建一個文件,只要你啓動你的應用程序並檢查是否存在... – Inge

回答

0

你可以做到這一點的唯一方法是趕IllegalStateException異常

如果你挖成你看到這個JavaFX的源代碼:基於@nejinx的回答

if (launchCalled.getAndSet(true)) { 
    throw new IllegalStateException("Application launch must not be called more than once"); 
} 
0

,你有調用Application.launch()時,要做到這一點:

try { 
    Application.launch(args); 
} catch (IllegalStateException e) {} 

這樣,如果錯誤發生,你的程序將只是保持運行,而不是嘗試重新啓動應用程序。

相關問題