Java 所有PC的固定绝对路径

Java 所有PC的固定绝对路径,java,linux,windows,Java,Linux,Windows,我正在开发一个java应用程序,它有一个试用版。 我需要将激活应用程序的所有信息保存在一个xml文件中(例如过期日期和应用程序ID),我需要将此文件保存在一个绝对路径中,该路径对于所有pc都是相同的 你能帮我吗?不要。对任何事物使用绝对路径都是非常糟糕的做法。 为什么不将XML文件保存到特定于用户的文件夹(如果您的许可证绑定到用户),或者保存到与应用程序相关的文件夹(如果您的许可证绑定到计算机,正如您的问题所示)?我同意使用绝对路径可能不是解决问题的方法,但为了解决问题,您可以这样获得用户的名称

我正在开发一个java应用程序,它有一个试用版。 我需要将激活应用程序的所有信息保存在一个xml文件中(例如过期日期和应用程序ID),我需要将此文件保存在一个绝对路径中,该路径对于所有pc都是相同的


你能帮我吗?

不要。对任何事物使用绝对路径都是非常糟糕的做法。
为什么不将XML文件保存到特定于用户的文件夹(如果您的许可证绑定到用户),或者保存到与应用程序相关的文件夹(如果您的许可证绑定到计算机,正如您的问题所示)?

我同意使用绝对路径可能不是解决问题的方法,但为了解决问题,您可以这样获得用户的名称

String username = System.getProperty("user.name");
从那里,您可以使用windows文件结构访问documents文件夹

String documentsFolder = "C:/Users/"+username+"/Documents";
通过该目录路径,您可以读取和写入该文件夹。此文件夹结构仅适用于windows,需要对Mac或Linux计算机进行更改,但可以通过相同的方式获取用户名

只是一个建议。如果您仅支持windows计算机,则可能可以创建一个带有应用程序开始和结束日期的注册表,并将其用作参考点,即使卸载或重新安装应用程序,也会保持一致。另外,创建带有日期的系统变量可能是另一种方法。只是一些想法


希望这有帮助

问题是,如果我将其保存到与应用程序相关的文件夹中,如果有人在过期后删除整个文件夹并重新安装应用程序,它将为同一台机器获得新的试用版,我不希望发生这种情况。如何将其保存到特定于用户的文件夹中?就像在“我的文档”文件夹中一样?如果用户删除了您固定位置的文件怎么办?然后,即使不卸载应用程序,她也可以创建一个新密钥。有很多方法可以解决您的问题,可以将许可证密钥绑定到机器上(例如,请参阅License4J),也可以确保一个人不能请求多个密钥(例如,在生成密钥时需要一个以前从未使用过的有效电子邮件地址)。'“隐藏位置安全性”是“模糊安全性”的一种形式,不是一个好主意。请参阅了解如何将文件保存到特定于用户的位置。处理保存设置(许可证信息可被视为“设置”)的一个好方法是使用Java首选项API(请参阅)。它将依赖于平台的方面隐藏在干净的界面后面。