您的位置 首页 java

工具类:Java从项目可执行jar同级目录读取配置文件工具类

有时候,我们在编写 Java 程序的时候,都是把一些可配置的新的写到配置文件里,但是不能跟项目一起打包,因为配置文件可能会需要经常修改,所以最好能在同级目录。

项目结构如下

可以看到,app.properties在同级目录下,打包为可执行jar过后,jar包里面没有app.properties文件,放到了外面,然后就可以轻松修改了。

工具类

 /**
 * 用完美的单例模式获取properties的数据,加载为map
 * @author forever
 *
 */
public class PropertiesUtil {
    //值可变,引用不可变
    private static final Properties PROPERTIES =new Properties();
    static{
        initProperties();
    }
    /**
     * @param key
     * @param defaultValue
     * @return
     */
    public static String get(String key,String defaultValue){
        if(PROPERTIES.isEmpty()) {
            throw new UnsupportedOperationException("配置未加载");
        }
        String value =PROPERTIES.getProperty(key, defaultValue);
        return  value;
    }
    /**
     * 获取默认配置的值,这个值可以动态修改
     * @param key
     * @return
     */
    public static String get(String key){
        return get(key, "");
    }
    private static void initProperties(){
         InputStream is =null;
         try {
             //获取当前目录
             String property = System.getProperty("user. dir ");
             //默认是linux os
             String fileName = "/app.properties";
             //判断是否是windows os
             if(System.getProperty ("os.name").contains("Windows")) {
                 fileName = "\app.properties";
             }
             // 读取当前目录下conf配置文件
             File file = new File(property+fileName);
             PROPERTIES.clear();
             is = new FileInputStream(file);
             PROPERTIES.load(is);
         }catch (IOException e) {
              e.printStackTrace();
         }finally {
            if(is!=null) {
                try {
                    is.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
         }
    }
    public static void main(String[] args) {
        System.out.println(PropertiesUtil.get("name"));
    }
}  

文章来源:智云一二三科技

文章标题:工具类:Java从项目可执行jar同级目录读取配置文件工具类

文章地址:https://www.zhihuclub.com/177334.shtml

关于作者: 智云科技

热门文章

网站地图