在哪里存储Java的.properties文件?

时间:2011-01-12 15:53:58

标签: java

使用属性的Java tutorial讨论了如何使用Properties类。在本教程中,它显示了写入名为“defaultProperties”的文件的属性。那么属性文件的名称和位置是什么?

我通常会编写两个Java应用程序之一:系统实用程序或用户程序。我认为大多数系统实用程序都有/etc/myfile.properties中的文件,大多数用户程序会创建~/.myfile.properties。但是,这些路径在Windows中不起作用。是否有更通用的方法来定义这些细节以使代码平台独立?

5 个答案:

答案 0 :(得分:7)

在这种情况下,我会使用Preferences API代替Properties

Preferences允许您存储/检索用户和系统设置,并自动为您处理持久性。持久性是特定于平台的;对于Windows,它使用注册表,对于Unix,它使用隐藏文件。

答案 1 :(得分:6)

如果您正在讨论保留外部属性文件以配置您的应用程序 我建议

System.getProperty("user.home")+File.separator+ "yourappname"+File.separator+"name.properties"

如果您正在谈论项目内部放置的属性文件,请将其保留在default package

其他选项正在使用XML文件,或Preference

答案 2 :(得分:0)

以下是一些替代解决方案:

  • 从类路径中读取属性文件
  • 将路径作为应用程序的启动参数传递给属性文件

从类路径中读取它会给你灵活性,因为你可以将它包含在jar本身中,或者在应用程序启动时指定它。

答案 3 :(得分:0)

如果您将props文件捆绑为应用程序的一部分并且是只读的,则将其放在jar文件中。如果您还必须更新它,请通过file:/// url使其可用,并将文件路径作为JVM(-DfileUrl = ...)参数传递。

请看这篇关于如何从类路径中的JAR读取道具文件的帖子:Reading properties file from JAR directory

答案 4 :(得分:0)

使用jndi是一个很好的解决方案。运行时配置通过webserver的管理控制台。 Webapp会在您获得房产后立即接收更改,您不必重新启动该应用程序。