2009-01-06 49 views
2

這裏是一個相當新手的問題,但如果您給我一些線索,它會非常有幫助。運行Java應用程序的新可執行文件,保存會話

我正在運行一個Java應用程序(與Gui)。每次我退出Gui時,會話(我在Gui中完成的)都會被保存,並且下次啓動Gui時,保存的會話將被加載。當我將應用程序安裝到另一個目錄中,並運行新安裝的應用程序的可執行文件時,舊應用程序的已保存會話將被加載。爲什麼會發生?這些應用程序是相同的版本,並且具有相同的名稱,但是我認爲當我啓動新安裝的應用程序的可執行文件時,將開始一個新的會話(並且沒有關於我在其他應用程序的GUI中所做的事情將被記住)。如果我第二次或第n次運行該應用程序,則以前的應用程序將被保存,可能是因爲有一個會話要保存的選項,但爲什麼新的可執行文件會發生這種情況?

爲了避免這種情況發生,我必須在計算機某處更改/刪除某些東西嗎? (我正在嘗試使用Windows機器的這些東西)。

問候

回答

1

的應用程序正在使用Preferences API可能保存在你的home目錄或Windows註冊表,即你的喜好。

2

Java可以將其程序設置保存在一個Preferences中,該程序設置存儲在每個用戶位置,具體取決於用於存儲和檢索值的設置。在Windows上,這些首選項存儲在註冊表下的HKEY_CURRENT_USER/Software/JavaSoft/Prefs

下面可能會有一個大的目錄樹,使用對象的類路徑來區分值。

1

您是否在使用Swing,並且您的應用程序正在擴展SingleFrameApplication(例如,在NetBeans中創建的默認GUI應用程序)。如果是這樣,窗口狀態信息將被保存 - 取決於平臺。要停止這種情況發生,您需要覆蓋您的班級中的shutdown方法,該方法可以擴展爲SingleFrameApplication

@Override 
protected void shutdown() { 
    super.shutdown(); // remove this if you don't want the window state saved 
} 
相關問題