2014-10-26 169 views
0

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

你能帮我吗?

回答

2

不要。任何事情都使用绝对路径是非常糟糕的做法。 为什么不把XML文件保存到特定于用户的文件夹(如果您的许可证绑定到人员),或保存到相对于您的应用程序的文件夹(如果您的许可证绑定到计算机上,正如您的问题似乎表明的那样) ?

+0

的问题是,如果我把它保存到相关的文件夹的应用程序,如果有人过期一天后删除整个文件夹,并重新安装applicaition,它会得到一个新的试用版同一台机器,我不希望发生这种情况 – 2014-10-26 14:17:51

+0

我该如何将它保存到特定于用户的文件夹中?就像在“我的文档”文件夹中一样? – 2014-10-26 14:19:29

+2

如果用户删除了固定位置的文件,该怎么办?然后,即使不卸载应用程序,她也可以创建新的密钥。解决问题的方法有两种,一种方法是将许可证密钥绑定到计算机上(例如,参见License4J),另一种方法是确保一个人无法请求多个密钥(通过要求生成密钥之前尚未使用的有效电子邮件地址例)。 '隐藏位置安全'是一种'混淆安全'的形式,并不是一个好主意。 – 2014-10-26 14:21:05

0

我同意,使用绝对路径可能不会去,但解决你的问题,你可以得到用户的名称,像这样

String username = System.getProperty("user.name"); 

从那里,你可以使用windows文件结构,以获得方式到文档文件夹

String documentsFolder = "C:/Users/"+username+"/Documents"; 

使用该目录路径,您可以读取和写入该文件夹。此文件夹结构只适用于Windows,并且需要在Mac或Linux机器上更改,但用户名可以通过相同的方式获得。

只是一个建议。如果您仅支持Windows计算机,也许可以创建一个注册表,其中包含应用程序的开始日期和结束日期,并将其用作参考点,即使应用程序已卸载或重新安装,该参考点也将保持一致。也许创建一个系统变量与日期可能是另一种方式去。只是几个想法。

希望这有助于