java - 从属性文件中读取内容

标签 java oop embedded-resource properties-file

我在从属性文件读取值时遇到问题。在我的项目中,有一个名为“env”的文件夹。其中有三个文件夹,名为“default”、“dev”和“staging”。这三个文件夹包含三个名为“default.properties”、“dev.properties”和“staging.properties”的属性文件。在所有这三个属性文件中,我有以下内容:

# Emailing configurations
sender_email_address = osanda.nimalarathna@maxsoft.com
sender_email_password = 1qaz2wsx@
recipients_email_addresses = eranga.heshan@maxsoft.com
email_subject = MaxSoft IntelliAPI Email Test

enter image description here

现在我正在做的是使用 java 读取它们。

package com.maxsoft.ata.util;

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Email {

    private static final String SENDER_EMAIL_ADDRESS = System.getenv("sender_email_address");
    private static final String SENDER_EMAIL_PASSWORD = System.getenv("sender_email_password");
    private static final String RECIPIENTS_EMAIL_ADDRESSES = System.getenv("recipients_email_addresses");
    private static final String EMAIL_SUBJECT = System.getenv("email_subject");

    public static void send(String messageBody) {

        System.out.println(SENDER_EMAIL_ADDRESS);

        /**
         * Email sending codes
         */

        }

    public static void main(String[] args) {
        send("test message");
    }
}

在控制台中,我得到的输出为 null

最佳答案

看来您在实现同样目标方面落后了几步。

  1. 根据 env,您有 3 个不同的属性文件。所以你需要一个映射器来映射相同的内容。
  2. 然后加载属性文件,例如:

    InputStream is = null;
    try {
        this.prop = new Properties();
        is = this.getClass().getResourceAsStream("your env specific property file");
        prop.load(is);
    } catch (FileNotFoundException e) {
       //handle exception
    } catch (IOException e) {
         //handle exception
    }
    

它应该可以工作。 (我没有测试,但我没有看到任何失败的原因)。

关于java - 从属性文件中读取内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49585549/

相关文章:

java - 使用不同的jdks将项目构建到不同的存储库中

java - 在java中发送消息之前检查kafka客户端生产者是否正在运行

java - 写入新文件

c++ - 在 OOP 中,什么是转发,它与委托(delegate)有何不同?

java - 无法显示图标 - 获取图像时未捕获错误

java - 我的 m2eclipse 似乎缺少 Eclipse "fix it"菜单中的自动依赖项解析

java - 根据输入类型做出决策

c++ - 在 C++ 的函数调用中完成强制转换是否真的有效?

visual-studio - 有人可以解释 VS 2008 中不同构建操作的目的吗?

java - 使用 JAR 导出图像/文本文件