2014-05-06 20 views
0

我創建了一個Java應用程序,並使用Launch4j將其轉換爲exe文件,並且運行良好。但是,當它關閉時,「Java(TM)Platform SE Binary」任務仍將在Windows任務管理器中運行。我運行的每個應用程序實例都會爲此創建一個新任務,並且需要手動完成任務。應用程序未正確關閉(Java平臺SE二進制文件將不會關閉)

任何想法,爲什麼會發生這種情況?我只用Java編寫了大約3周,這是我的第一個應用程序。

希望將鏈接添加到應用程序+壓縮的源代碼是可以的。我無法直接添加源代碼,因爲它太長了。感謝任何建議或建議的解決方案。

應用: http://www.filedropper.com/folderencryptor

源代碼: http://www.filedropper.com/folderencryptor_1

+0

你可以將你附加的源代碼歸結爲顯示你使用'JFrame' /'setDefaultCloseOpertaion'調用嗎?參考:http://stackoverflow.com/questions/7799940/jframe-exit-on-close-java – Pedantic

+0

我只是使用.... setDefaultCloseOperation(EXIT_ON_CLOSE);在創建框架的構造函數中。 – Tony

+0

DOH !!!我忘了添加optFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);到選項窗口框架。所以當關閉按鈕被按下時它就隱藏了。感謝您的鏈接Pedantic ...幫助我意識到我的錯誤。我很欣賞你迴應這個新手問題的時間。 – Tony

回答

1

我忘了,我的應用程序中打開另一個JFrame的顯示一些選項和我沒有設置任何動作發生時,在框架的關閉按鈕是按下。默認情況下,Java在關閉時將其設置爲「隱藏框架」(不適用於Java !!)。所以Java仍在使用該框架,因此Windows任務仍在運行。

因此,所有我需要做的就是添加...

optFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE)

...初始化代碼中的選項的JFrame。總之,不要忘了在完成JFrames的處理之後處理它們。

+0

接受這個答案。 – Pedantic

相關問題