栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

java resource jar

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java resource jar

今天遇到一个巨大的坑就是一个简单的读取项目中的一个config.json文件。在本地是正常的,但是打包成jar包在linux上运行的时候死活找不到。

下面是我的项目结构

JIGOU.png

就是为了读取配置文件config.json的内容

刚开始是通过文件路径然后通过readFile("文件路径")的方式读取,但是使用过

this.getClass().getResource("/").getPath()+"config.json" //本地是可以的,但是打包成jar包之后再服务器中打印出的路径是一串数字。

String configPath = ResourceUtils.getFile("classpath:config.json").getAbsolutePath(); //也是不行

后面再网上找了使用getResourceAsStream() 方法搞定,代码如下

InputStream is = this.getClass().getResourceAsStream("/config.json");

BufferedReader br = new BufferedReader(new InputStreamReader(is));

String s="";

String configContentStr = "";

try {

while((s=br.readLine())!=null) {

configContentStr = configContentStr+s;

}

} catch (IOException e) {

e.printStackTrace();

}

顺便记录一下java中获取路径的一些方法

//获取类路径

String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();

String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getFile();

//因为程序已经被打包成jar包,所以getPath()和getFile()在这里的返回值是一样的。都是/xxx/xxx.jar这种形式。如果路径包含Unicode字符,还需要将路径转码

path = java.net.URLDecoder.decode(path, "UTF-8");

//利用了java运行时的系统属性来得到jar文件位置,也是/xxx/xxx.jar这种形式。

String path = System.getProperty("java.class.path");

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984598.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号