问题:获取文件路径
1、xxx.class.getClassLoader().getResource(“”).getPath(); 获取src资源文件编译后的路径(即classes路径)
2、xxx.class.getClassLoader().getResource(“文件”).getPath(); 获取classes路径下“文件”的路径
3、xxx.class.getResource(“”).getPath(); 缺少类加载器,获取xxx类经编译后的xxx.class路径
4、this.getClass().getClassLoader().getResource(“”).getPath();
5、Class.getClassLoader.getResourceAsStream("") :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由
ClassLoader获取资源。
项目架构:一般对证书或者验签类外部文件会放在src目录下;tomcat服务器不会存在问题;
标准目录一般为:
但是在把项目发布到weblogic上时,classes会被打成jar,这就意味着当你取路径的时候中间目录不是文件夹而是jar。如果想获取原src下的配置文件,通过上述1234均无法正确获取!!!发布之后的目录为:
此时的classes文件为空文件,原文件被打在了jar中。
这里说下暂时想到的几种处理方式:
1.如果要获取对应文件里的内容,用Class.getClassLoader.getResourceAsStream直接读流。也就是上述5这个方法;
2.如果一定需要获取文件路径,可以采用换文件夹的形式,注意避免打在jar里面,jar不是文件夹,直接/a.jar/a.txt这样是拿不到文件的;
3.将需要用到的文件放到服务器指定的盘符路径(虽然不灵活但是最容易)