在Java应用程序中检测首次使用的用户

5

我希望我的Java桌面应用程序能够知道用户是否是第一次在该电脑上运行它。由于jar文件可能在多个用户之间共享,因此我不想写入到jar文件内部的文件中。 显然有很多方法可以实现这个功能,但你会推荐哪种?(必须跨平台)谢谢

3个回答

7
我建议使用用户主目录,在其中放置一个特定于用户的设置文件。这将使您能够检测首次使用者,并记住他们可能选择的任何偏好设置。
System.getProperty("user.home"); // returns the home directory cross platform

这当然是一个有效的解决方案,虽然在这种情况下可能不太美观,因为没有需要用户特定设置。当然,应用程序可以在主目录中放置一个空文件(如果该文件存在,则不是首次用户),但用户可能会对主文件夹中的此类文件感到烦恼并将其删除。 - l.lukian

4

这看起来非常不错,但也许有点危险?系统/用户偏好设置很容易被另一个应用程序或用户手动清除,对吧?(也许这种情况非常罕见..?) - l.lukian
与其他解决方案一样,偏好设置可以由具有权限的用户/应用程序更改。如果您必须防止不同应用程序之间的偏好设置冲突,请考虑使用systemNodeForPackage(Class)或userNodeForPackage(Class)方法。 - szhem
这里还有一些关于不同系统中首选项通常存储位置的信息。而这篇文章是一个相当古老但有用的技术文章,介绍了“Preferences”。 - szhem
非常感谢这些答案,之前不知道有“首选项”这个功能,看起来很棒。 - l.lukian

0

每个操作系统都有一些特定的目录用于存储用户数据(/homeC:\UsersC:\Documents and settings)。这个值通常可以在JVM中使用“user.home”系统属性获得。

在那里存储一些文件以存储您的用户配置。当然,每个操作系统都有自己的方法来完成这个任务(“应用程序数据”文件夹,以点开头的文件夹),您应该确保您遵守它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接