如果在打jar包的时候有依赖包,需要设置-cp参数和-Djava.ext.dirs才行,-cp是classpath的意思,程序执行的时候会首先在这里面去查找对应的类
java -cp lib -Djava.ext.dirs=lib -jar fileexport.jar
对于配置文件,一般打jar包的时候,会把配置文件放在jar包外面,程序里面读取的方式还是相同的
打包前:
props.load(WriteCSVTestCase.class.getClassLoader().getResourceAsStream( "db.properties"));
打包后:
props.load(WriteCSVTestCase.class.getClassLoader().getResourceAsStream( "db.properties"));
我的理解是:打包前,你在运行的时候,相对路径是这个文件,
打包后,你运行的时候,相对路径是这个包