TJR*_*TJR 12 eclipse eclipse-rcp
我有一个多用户/位置RCP应用程序,目前使用多个用户可配置选项.一些偏好是针对站特定的,一些是特定于用户的.
选项来自首选项存储,它将*.prefs文件保存到"workspace.metadata.plugins\org.eclipse.core.runtime.settings".
如果我们只使用一台机器/用户,这将没有问题.但是如果用户要去另一个站,则用户将使用为该站设置的任何偏好.
是否可以为持久性(而不是文件)指定另一种形式?
根据eclipse wiki,首选项是基于文件的,并存储:
<eclipse_home>/eclipse/configuration/.settings/..prefs扩展名.<workspace>/.metadata/.plugin/org.eclipse.core.runtime/.settings..prefs扩展名..settings项目文件夹的子目录中的文件因此,如果文件选项保留,您可能需要:
HKEY_CURRENT_USER/Software/MyRCP/...应用程序出口处的用户注册表(),以及.prefs本地workspace.metadata.plugins\org.eclipse.core.runtime.settings目录中的文件来导入它们听起来您需要将您的偏好存储在所有用户/机器都可以到达的中心位置.这意味着你必须实现自己的IPersistentPreferencesStore.然后你可以覆盖org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()使用它.
更大的问题是如何实现中央首选项存储,但这取决于您使用的技术.通常,如果您的项目使用中央服务器,您可能应该在那里存储您的首选项.例如,如果您的项目已经使用了关系数据库,那么一种解决方案是创建适当的数据库表并实现IPersistentPreferencesStore通过JDBC访问这些表.
小智 5
您应该阅读有关多用户安装的信息
在我们的示例中,我们通过将config.ini设置为包括以下内容,将每用户首选项与应用程序配置分开:
osgi.instance.area=@user.home/Application Data/earthrise
osgi.configuration.area=@user.home/Local Settings/Application Data/earthrise/144/configuration
osgi.sharedConfiguration.area=c:/program files/earthrise/configuration
osgi.configuration.cascaded=true
Run Code Online (Sandbox Code Playgroud)
结果是,用户设置的任何首选项都存储在其漫游配置文件中,但特定于应用程序的配置数据存储在"本地设置"中.
这不能解决具有特定于特定工作站的用户偏好的问题,但确实允许每个用户具有他们自己的偏好.
这样做的一个问题是,eclipse错误日志文件将存储在实例区域中,并在其漫游配置文件中被携带 - 实际上并不是您想要的.您可以在插件中编写代码.请参阅eclipse bugzilla的解决方法 - 搜索256502