java读取jar包中配置文件

时间:2021-07-08 12:09:39

昨天晚上打包changelist的时候遇到两个问题:

1、打包之后,jar包无法找到主类。

这个问题,在我看了jar包内容之后,发现自己写的com.zetyun.moc.changelist下的所有的类都没有打包进jar。之后,发现只有在mvn clean,之后build一下,idea项目下才会出现target/classes,之后mvn package才会打出正确的包来。

2、打的包上传到1.91之后,报找不到src\preLogstashConf.txt文件。这个问题涉及到java程序如何读取jar文件中的资源的问题,解决方案如下:

当把项目打成jar包发布后jar中的方法就不能通过File file=new File("文件路径")的方式来读取文件了,需要用如下方法:

public static String getJarFile()throws IOException {  

InputStream in=Test.class.getClass().getResourceAsStream("/idcheck-file.properties");//读jar包根目录下的idcheck-file.properties文件</span><span>

Reader f = new InputStreamReader(in);

BufferedReader fb = new BufferedReader(f);

StringBuffer sb = new StringBuffer("");

String s = "";

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

sb = sb.append(s);
} return sb.toString();

}

 该方法同样适用于项目中读取文件。

 

现在这两个问题都解决了,已经可以顺利在1.91上部署访问了。