打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何从jar包中读取配置文件

https://blog.csdn.net/he_qiao/article/details/81430776

今天开发的时候遇到一个问题——当程序以jar包运行的时候,有个txt配置文件无法获取到,但是本地测试无法复现.后来发现是因为以Jar包形式运行,文件无法访问到,这里记录一下。

1. 如何判断当前进程是否以jar包形式运行的?

/** * 是否以Jar包运行 *  * @return */public static boolean isRunningInJar() {    try {        String className = GenericUtils.class.getName().replace('.', '/');        String classJar = GenericUtils.class.getResource("/" + className + ".class").toString();        logger.info("classJar: " + classJar);        return classJar.startsWith("jar:");    } catch (Exception e) {        logger.warn("get Running status failed.");        return false;    }}

2.从Jar包中读取文件内容

public static String txt2String(String fileName) {    StringBuilder result = new StringBuilder();    BufferedReader br = null;    try {        Reader r = null;        if (isRunningInJar()) {            InputStream in = GenericUtils.class.getResourceAsStream(File.separator + fileName);            r = new InputStreamReader(in);        } else {            String path = GenericUtils.class.getClassLoader().getResource(fileName).getPath();            File file = new File(path);            r = new FileReader(file);        }        br = new BufferedReader(r);// 构造一个BufferedReader类来读取文件        String s = null;        while ((s = br.readLine()) != null) {// 使用readLine方法,一次读一行            result.append(System.lineSeparator() + s);        }    } catch (Exception e) {        logger.error("error when function:getTxtFromFile!", e);    } finally {        try {            if (br != null) {                br.close();            }        } catch (final IOException ioe) {            // ignore        }    }    return result.toString();}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在Jar包中打入DLL文件并调用的方式
java代码实现利用 classloader 动态加载 jar包、文件夹到classpath中
SSH框架网上商城项目第1战之整合Struts2、Hibernate4
关于系统读取properties配置文件的路径问题,包括打成jar包的运行文件
读取外置config文件
springboot 打jar 包部署时 读取外部配置文件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服