Java 读取jar内包资源文件和读取jar包外资源文件

虾米哥 阅读:1066 2021-03-31 12:44:31 评论:0

Java 读取jar包内资源文件:

           # 读取jar 包内资源文件application.properties 
           InputStream appPropertiesInputStream = ApplicationPropertiesHolder.class 
                    .getClassLoader().getResourceAsStream("application.properties"); 
 
            if (appPropertiesInputStream != null) { 
                try { 
                    Properties appProperties = new Properties(); 
                    appProperties.load(appPropertiesInputStream); 
                    if (logger.isDebugEnabled()) { 
                        logger.debug("application.properties:"); 
                        for (Entry<Object, Object> entry : appProperties.entrySet()) { 
                            logger.debug("*" + entry.getKey() + "=" + entry.getValue()); 
                        } 
                    } 
                    for (Entry<Object, Object> entry : appProperties.entrySet()) { 
                        defaultProperties.put(entry.getKey(), entry.getValue()); 
                    } 
                } catch (IOException e) { 
                    logger.error("Load application.properties error", e); 
                } finally { 
                    if (appPropertiesInputStream != null) { 
                        try { 
                            appPropertiesInputStream.close(); 
                            appPropertiesInputStream = null; 
                        } catch (IOException e) { 
                            logger.error("InputStream Colse Error:", e); 
                        } 
                    } 
                } 
            }

Java 读取jar包外资源文件:

# 读取jar 同级目录的config/application.properties 文件  
String dir =new File(ApplicationPropertiesHolder.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent(); 
            InputStream appPropertiesInputStream = new FileInputStream(new File(dir+File.separator+"config/application.properties")); 
 
            if (appPropertiesInputStream != null) { 
                try { 
                    Properties appProperties = new Properties(); 
                    appProperties.load(appPropertiesInputStream); 
                    if (logger.isDebugEnabled()) { 
                        logger.debug("application.properties:"); 
                        for (Entry<Object, Object> entry : appProperties.entrySet()) { 
                            logger.debug("*" + entry.getKey() + "=" + entry.getValue()); 
                        } 
                    } 
                    for (Entry<Object, Object> entry : appProperties.entrySet()) { 
                        defaultProperties.put(entry.getKey(), entry.getValue()); 
                    } 
                } catch (IOException e) { 
                    logger.error("Load application.properties error", e); 
                } finally { 
                    if (appPropertiesInputStream != null) { 
                        try { 
                            appPropertiesInputStream.close(); 
                            appPropertiesInputStream = null; 
                        } catch (IOException e) { 
                            logger.error("InputStream Colse Error:", e); 
                        } 
                    } 
                } 
            }

 

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号