如何存储Java桌面应用程序(多平台)全局设置?

如何存储Java桌面应用程序(多平台)全局设置?,java,windows,macos,swing,desktop-application,Java,Windows,Macos,Swing,Desktop Application,我真正需要的是在用户机器上的某个地方存储诸如应用程序首次执行日期和一些设置之类的信息。该程序将在Windows和Mac操作系统上发布。此信息需要在同一台计算机上的用户之间共享。。。有些全局设置。在windows上,我可能会将此信息存储在注册表中,但不确定是否有Mac。。。我真的很想要一个多平台的解决方案,否则请建议特定于平台的解决方案。使用 如果希望计算机上的所有用户使用相同的属性,请使用Preferences.systemRoot()(而不是Preferences.userRoot())

我真正需要的是在用户机器上的某个地方存储诸如应用程序首次执行日期和一些设置之类的信息。该程序将在Windows和Mac操作系统上发布。此信息需要在同一台计算机上的用户之间共享。。。有些全局设置。在windows上,我可能会将此信息存储在注册表中,但不确定是否有Mac。。。我真的很想要一个多平台的解决方案,否则请建议特定于平台的解决方案。

使用

如果希望计算机上的所有用户使用相同的属性,请使用
Preferences.systemRoot()
(而不是
Preferences.userRoot()


如果希望计算机上的所有用户使用相同的属性,请使用
首选项.systemRoot()
(而不是
首选项.userRoot()

尝试使用
首选项
类。它可以存储用户或系统首选项。听起来您需要使用系统首选项,因为它们对所有用户都是相同的


该实现是特定于系统的,对于Windows,它将使用注册表。不确定Mac。

试试
首选项
类。它可以存储用户或系统首选项。听起来您需要使用系统首选项,因为它们对所有用户都是相同的


该实现是特定于系统的,对于Windows,它将使用注册表。对Mac不确定。

如果@bozho优秀的提案不能满足您的要求,您也可以采用Apache方式,使用。

如果@bozho优秀的提案不能满足您的要求,您也可以采用Apache方式,使用。

那么,在这种情况下,@willcodejavaforfood+1表示您的优秀伪:-)那么,@willcodejavaforfood+1感谢你出色的伪代码:-)谢谢你的回答,如果它起作用,这真的会解决我所有的问题:D 2使用首选项的问题:1)在windows上,必须已经创建某些注册表项才能起作用,或者你必须是管理员,否则,您会收到大量警告,而不会保存任何内容。是否让安装程序创建此密钥?大概很多痛苦。。。2) 在mac systemRoot上,仅当运行程序的用户是管理员/root时,root才会在硬盘上持久存在。底线似乎我无法将此解决方案用于我们的产品,因为它面向普通用户:/嗯,如果您想存储系统范围的属性,我想成为管理员是合乎逻辑的。否则,您应该能够使用
userRoot()
(每个用户)。感谢您的回答,如果它起作用,这确实会解决我的所有问题:D 2使用首选项的问题:1)在windows上,必须已创建某些注册表项才能起作用,或者您必须是管理员,否则,您会收到大量警告,而不会保存任何内容。是否让安装程序创建此密钥?大概很多痛苦。。。2) 在mac systemRoot上,仅当运行程序的用户是管理员/root时,root才会在硬盘上持久存在。底线似乎我无法将此解决方案用于我们的产品,因为它面向普通用户:/嗯,如果您想存储系统范围的属性,我想成为管理员是合乎逻辑的。否则,您应该能够使用
userRoot()
(每个用户)。