如何在java中使用notepad调用项目外的database.properties?

时间:2012-10-08 03:57:39

标签: java database properties

我想在项目之外发生database.properties,所以当我想要将它们构建到jar时更改内容(数据库配置)时,我可以轻松地完成它而不打开我的再次投射。那该怎么办?

2 个答案:

答案 0 :(得分:0)

首先,将database.properties文件放在您希望的位置。

然后,执行以下操作之一:

  1. database.properties所在的目录添加到类路径中。然后使用Thread.currentThread().getContextClassLoader().getResource()获取文件的URL,或使用getResourceAsStream()获取文件的输入流。
  2. 如果您不介意您的Java应用程序知道database.properties文件的确切位置,您可以使用简单的文件I / O来获取对该文件的引用(使用new File(filename))。 / LI>

    通常,你想要坚持使用第一个选项。将文件放在任何位置,并将目录添加到类路径中。这样,您的Java应用程序就不必知道文件的确切位置 - 只要将文件的目录添加到运行时类路径中,它就会找到它。

    示例(第一种方法):

    public static void main(String []args) throws Exception {
        InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("database.properties");
        Properties props = new Properties();
    
        try {
            // Read the properties.
            props.load(stream);
        } finally {
            // Don't forget to close the stream, whatever happens.
            stream.close();
        }
    
        // When reaching this point, 'props' has your database properties.
    }
    

答案 1 :(得分:0)

将属性文件存储在首选位置。然后执行以下操作:

try {

    String myPropertiesFilePath = "D:\\configuration.properties"; // path to your properties file
    File myPropFile = new File(myPropertiesFilePath); // open the file

    Properties theConfiguration = new Properties();
    theConfiguration.load(new FileInputStream(myPropFile)); // load the properties

catch (Exception e) {

}

现在,您可以轻松地从文件中获取字符串属性:

String datasourceContext = theConfiguration.getString("demo.datasource.context", "jdbc/demo-DS"); // second one is the default value, in case there is no property defined in the file

您的configuration.properties文件可能如下所示:

demo.datasource.context=jdbc/demo-DS
demo.datasource.password=123