2009-01-06 24 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 
} 
相关问题