未加载用户覆盖的java首选项(Windows工厂)XmlPreferencesFactory



我们在命令行选项中将首选工厂设置为

-Djava.util.prefs.PreferencesFactory=…preferences.XMLPreferencesFactory(我们使用自己的首选项工厂实现)

这不起作用,但在install4j中正在使用这个windows首选项工厂。eclipse和其他安装工具也是如此。

代码段

类userNodeFromClassPackage;

Preferences.userNodeForPackage(userNodeFromClassPackage);

但是这个首选项不会创建xmlPreferencesFactory。似乎已经在install4j中调用了Preferences,所以它返回了windows Preferences。请帮助如何设置-Djava.util.prefs.PreferencesFactory变量,以便使用我们自己的PreferencesFactory(XMLPreferencesFactory)来代替Windows首选项。

在Windows Installer中,WinLauncher类的主方法在内部调用InstallerUtil的disablePreferencesLogging,它首先使用Preferences,-J-Dinstall4j。noLoggingFix=true没有禁用此功能,因为java中的Preferences有静态方法factory(),它在加载类并实例化类时设置其值(WindowsPreferences、FilePreferences或Service bundle等),

在您的dev(eclipse)设置中,当从您的代码调用Preferences时,它会加载,而您的业务逻辑可能依赖于此。

希望这能帮助

最新更新