踩坑-weblogic下标准项目部署之后的目录问题--classes文件路径问题

问题:获取文件路径

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文件路径问题_第1张图片

但是在把项目发布到weblogic上时,classes会被打成jar,这就意味着当你取路径的时候中间目录不是文件夹而是jar。如果想获取原src下的配置文件,通过上述1234均无法正确获取!!!发布之后的目录为:

踩坑-weblogic下标准项目部署之后的目录问题--classes文件路径问题_第2张图片踩坑-weblogic下标准项目部署之后的目录问题--classes文件路径问题_第3张图片踩坑-weblogic下标准项目部署之后的目录问题--classes文件路径问题_第4张图片

此时的classes文件为空文件,原文件被打在了jar中。

这里说下暂时想到的几种处理方式:

1.如果要获取对应文件里的内容,用Class.getClassLoader.getResourceAsStream直接读流。也就是上述5这个方法;

2.如果一定需要获取文件路径,可以采用换文件夹的形式,注意避免打在jar里面,jar不是文件夹,直接/a.jar/a.txt这样是拿不到文件的;

3.将需要用到的文件放到服务器指定的盘符路径(虽然不灵活但是最容易)

 

你可能感兴趣的:(java)