昨天晚上打包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上部署访问了。