f4l*_*lco 1 java settings cross-platform jar preferences
我只需要一个解决方案来检索存储满足以下需求的桌面应用程序设置(例如sqlite数据库)的路径:
我花了很多时间谷歌搜索和试验通过X.class.getProtectionDomain().getCodeSource().getLocation()和java.util.pref.Preferences
类获取代码库路径,但返回值有时会产生不同的结果,返回null或只是"/"作为路径.
"跨平台"很难定义.称为"每个平台的最佳实践"的解决方案并不容易实现.在用户特定数据和共享数据之间做出区分是明智的.
java.util.prefs.Preferences是这样做的正确方法.它工作得很好(我在桌面应用程序中使用它没有任何问题).它是跨平台的,没有任何额外的罐子.它还区分用户特定数据和全局数据.或许可以解释一下你的特殊问题(或者问另一个问题)
当然,你也可以使用java.util.Properties,并存储文件System.getProperty("user.dir").