精华内容
下载资源
问答
  • 需要 : 获取jboss下运行的web应用的绝对路径 背景: 项目中有个初始化方法 实现ApplicationListener 然后实现初始化、 在项目[color=#FF0000]未完全启开时候[/color]便已经初始化完成、 现有...
  • Tomcat部署路径选择Use workspace metadata (does not modify Tomcat installation)有效。 import java.io.File; import javax.servlet.... ... * 获取本地项目的一些路径 * @author lisi * */ public c...

     

    Tomcat部署路径选择Use workspace metadata (does not modify Tomcat installation)有效。

    import java.io.File;
    
    import javax.servlet.http.HttpServletRequest;
    
    /**
     * 获取本地项目的一些路径
     * @author lisi
     *
     */
    public class GWPWpath {
    	
    	
    	private static File f = null;
    	
    	public GWPWpath() {
    		super();
    		//获取类加载的项目根路径,一般位于开发工具工作空间目录下
    		f=new File(this.getClass().getResource("/../../").getPath());
    	}
    	
    	/**
    	 * 获取eclipse开发工具工作空间路径
    	 * @return
    	 */
    	public String getWokespacePath(){
    		//根据eclipse工作空间的文件夹名.metadata获取eclipse开发工具工作空间路径
    		 String wokespacepath=f.toString().substring(0, f.toString().indexOf(".metadata"));
    		return wokespacepath;
    	}
    	
    	/**
    	 * web项目可用
    	 * 获取项目相对路径
    	 * @param req 请求对象
    	 * @return
    	 */
    	public String getProjectRelativePath(HttpServletRequest req){
    		//获取项目相对路径
    		 String projectpath=req.getSession().getServletContext().getContextPath();
    		return projectpath;
    	}
    	
    	/**
    	 * 通用
    	 * 获取项目名
    	 * @return
    	 */
    	public String getProjectRelativePath(){
    		//获取项目名
    		String projectpath=f.toString().substring(f.toString().lastIndexOf("\\")).substring(1);
    		return projectpath;
    	}
    	
    	/**
    	 * 当前工作空间中此类所在项目的绝对路径
    	 * 获取eclipse开发工具工作空间中当前项目的路径
    	 * @return
    	 */
    	public String getProjectAbsolutePath(){
    		//拼接成项目部署前路径
    		 String filepath=getWokespacePath()+getProjectRelativePath();
    		return filepath;
    	}
    	
    	/**
    	 * 获取WebContent的绝对路径
    	 * @return
    	 */
    	public String getWebPath(){
    		boolean flag=false;
    		//当前工作空间中此类所在项目的绝对路径
    		String filepath=getProjectAbsolutePath();
    		//根据项目部署前路径遍历获取img文件夹所在路径
    		 File file=new File(filepath);
    		 	//获取目录下的所有文件及文件夹
    		 File[] listFiles = file.listFiles();
    		 for (int i = 0; i<listFiles.length; i++) {
    //			 System.out.println(listFiles[i].getName());
    			 //判断是否为目录,且目录名是否包含web
    			 //思路:调用file对象的isDirectory()判断是否是目录,
    			 //调用file对象的getName()获取当前文件名字符串并调用字符串对象的toLowerCase()返回小写文件名字符串,
    			 //在调用字符串对象的indexOf获取子串web在字符串对象中第一次出现的位置,如果不等于-1表示文件名匹配
    			if(listFiles[i].isDirectory()&&listFiles[i].getName().toLowerCase().indexOf("web")!=-1){
    				filepath=filepath+File.separator+listFiles[i].getName();
    				//找到web并拼接完毕,不用在循环了,跳出这个循环
    				 flag=true;
    				 break;
    			}
    		}
    		 if(flag){
    			 return filepath;
    		 }
    		 return null;	
    	}
    	
    	/**
    	 * 获取WebContent内部文件夹的绝对路径
    	 * 可模糊搜索,只匹配第一个
    	 * @param filename 文件夹名
    	 * @return
    	 */
    	public String getWebInnerDirectoryPath(String filename){
    		boolean flag=false;
    		//获取WebContent的绝对路径
    		String filepath=getWebPath();
    		if(filename==null||"".equals(filename)){
    			return null;
    		}
    		//获取img文件夹所在路径
    		 File file=new File(filepath);
    		//遍历获取web目录下所有文件,固定图片文件夹名称的话直接拼接就可以不用再遍历
    		 	//获取目录下的所有文件及文件夹
    		 File[] listFiles = file.listFiles();
    		 for (int i = 0; i<listFiles.length; i++) {
    //			 System.out.println(listFiles[i].getName());
    			//判断是否为目录,且目录名是否包含img,
    			 //思路:调用file对象的isDirectory()判断是否是目录,
    			 //调用file对象的getName()获取当前文件名字符串并调用字符串对象的toLowerCase()返回小写文件名字符串,
    			 //在调用字符串对象的indexOf获取子串img在字符串对象中第一次出现的位置,如果不等于-1表示文件名匹配
    			if(listFiles[i].isDirectory()&&listFiles[i].getName().toLowerCase().indexOf(filename)!=-1){
    				filepath=filepath+File.separator+listFiles[i].getName();
    				//找到img并拼接完毕,不用在循环了,跳出这个循环
    				 flag=true;
    				 break;
    			}
    		}
    		 if(flag){
    			 return filepath;
    		 }
    		 return null;	
    	}
    }
    

     

    展开全文
  • war包部署获取绝对路径问题

    千次阅读 2015-12-09 12:35:14
    项目以war包的形式部署时,request.getServletContext().getRealPath获取不到路径 返回null, 原因如下: 解决办法: -------------下班后填补内容-----------------------------------------

    当项目以war包的形式部署时,request.getServletContext().getRealPath获取不到路径 返回null,

    原因如下(来自网上):

    这个方法受到war 和non-war的影响,以及不同app server实现的影响,返回的结果往往不一样,在weblogic中会返回null

    项目做完之后一直是直接给本地目录拷贝到tomcat的webapps下面运行的,所以没有用到war包测试的时候没测出来这个问题,后来以war包的形式放到沙箱环境就有问题了,原因是war包的项目其实没有目录结构这么一说了,还有就是不同的server实现方式也是不一样的,比如tomcat和weblogic的实现方式就不一样,所有有时会出现调用这个接口返回null的情况。

    解决办法:

    如果非得需要绝对路径,解决办法是借助classloader的getResource(xxx)方法,

    如:

    this.getClass().getClassLoader().getResource("../../test.txt“).getPath()就是获取web根目录下test.txt文件的绝对路径,因为web项目。因为getResource()这个方法基本路径是${webRoot}/WEB-INF/classes目录,所以要想取得根下的test.txt就必须附加上路径的跳转。

    下面是这个方法的API:


    -------------下班后填补内容-----------------------------------------

    展开全文
  • Location:电脑上的此项目绝对路径 相对路径 绝对路径 手动拼接 String path1 = Thread.currentThread().getContextClassLoader().getResource("").getPath();//获取当前资源的虚拟路径 Syste

    如果项目要打包到别的地方部署时,注意使用相对路径。

    如果要查看当前项目路径的话,这里以eclipse为例,在项目上右键选择properties
    在这里插入图片描述

    Path:指的是相对与eclipse的项目路径(一般为包名)
    Type:此文件夹的项目
    Location:当前项目在本地workspace中的路径

    目前的项目路径是这样的
    在这里插入图片描述

    相对路径

    动态web项目中使用

    String path = this.getClass().getResource("/资源名").getPath()

    绝对路径

    String path = System.getProperty("user.dir");

    得到的路径是 D:…\eclipse-workspace\PathDemo但是
    System.getProperty(“user.dir”) 建议不要轻易使用

    class.getResource(name)中name可以写成绝对路径/PathDemo/com.demo/test.txt和相对路径(假设当前class和尧要读取的txt文件在一个package下)”test.txt”。其中绝对路径的/是相当于项目的classpath根目录,相对路径是相对于当前class的路径。
    classLoader.getResource(name)中的name一定要写成相对路径PathDemo/com.demo/test.txt(最前面不能是/ ),并且这个相对路径是相对于项目的classpath根目录的路径,相当于class.getResource(name)中写绝对路径/PathDemo/com.demo/test.txt。
    关于这个函数的理解参考这篇

    补充一点关于war包和jar包的区别

    JavaSE程序可以打包成Jar包(J其实可以理解为Java了),而JavaWeb程序可以打包成war包(w其实可以理解为Web了)。然后把war发布到Tomcat的webapps目录下,Tomcat会在启动时自动解压war包。

    如果一个Web应用程序的目录和文件非常多,那么要将其部署到另一台机器上时我们可以将Web应用程序打包成Web 归档(WAR)文件,这个过程和把Java类文件打包成JAR文件的过程类似。利用WAR文件,可以把Servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构来进行部署了,而是把WAR文件作为部署单元来使用。JAR文件的目的是把类和相关的资源封装到压缩的归档文件中,而对于WAR文件来说,一个WAR文件代表了一个Web应用程序,它可以包含 Servlet、HTML页面、Java类、图像文件,以及组成Web应用程序的其他资源,而不仅仅是类的归档文件。

    展开全文
  • 项目很多地方都用了路径变量或参数,部署在不同设备上项目各文件的相对路径虽没有变,但绝对路径却始终在变化,简单粗暴的方式可以find项目名字获取项目路径拼接获取项目根目录和其他文件目录,但希望可以有更文明的...

    项目很多地方都用了路径变量或参数,部署在不同设备上项目各文件的相对路径虽没有变,但绝对路径却始终在变化,简单粗暴的方式可以find项目名字获取项目路径拼接获取项目根目录和其他文件目录,但希望可以有更文明的方式去获取项目的根目录,进而拼接相对路径,获取到绝对路径。

    以下是参考网上资料后封装的项目路径封装类,如果有更简便方法或是存在问题欢迎指出赐教~

    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # Project_name: AutoRunner
    # Author  : holidaylzz
    # Time    : 2019/11/13
    
    import sys
    import os
    
    
    class PathUtils(object):
        """
        path utils
        """
        def __init__(self):
            # 判断调试模式
            # Python获得一些有关系统的各种信息的时候就不得不想到os的environ()
            debug_vars = dict((a, b) for a, b in os.environ.items() if a.find('IPYTHONENABLE') >= 0)
    
            # 根据不同场景获取根目录
            if len(debug_vars) > 0:
                # 当前为debug运行时
                self.rootPath = sys.path[2]
            elif getattr(sys, 'frozen', False):
                # 当前为exe运行时
                self.rootPath = os.getcwd()
            else:
                # 正常执行
                self.rootPath = sys.path[1]
    
            # 替换斜杠
            # self.rootPath = self.rootPath.replace("\\", "\")
    
        def make_project_dir(self, directory):
            """
            在项目中创建文件目录,已创建则忽略
            :param directory:项目文件目录
            :return:
            """
            os.makedirs('%s/%s' % (self.rootPath, directory), exist_ok=True)
    
        def get_project_abspath(self, *path):
            """
            获取项目文件目录
            :param path:
            :return:
            """
            return os.path.join(self.rootPath, *path)
    
    # 单例模式调用路径工具类
    pathUtil = PathUtils()
    
    展开全文
  • 一种获取项目部署路径的方法: /** * 获取当前项目在部署在服务器的绝对位置 * * @return */ public String getContextRealPath() { String path = LoginInterceptor.class.getClassLoader().getResource("")...
  • package lzh; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet....
  • 前文: 对开发中所有的路径定义,及项目部署后需要对某些资源的获取,可通过三种路径获取。 一、路径的区分 二、获取一个绝对路径 ...
  • Java Web 获取资源路径之绝对路径

    千次阅读 2018-08-06 11:25:42
    这是我部署在tomcat服务器之后,右键项目选择“Browse deployment location...”看到的结构: 可以看到,在tomcat服务器下,应用程序的根目录就是原来项目WebRoot下面的内容。想要获取a.properties、b.properties...
  • // 项目的根目录路径(项目部署在哪里就获取哪里的绝对路径项目的根目录) String filePath = nodepath.substring(1, nodepath.length() - 16); 关于web工程中java类如何获取webapp路径下的文件 第一步: 先获得...
  • 获取Web项目路径

    2015-12-27 23:40:53
    相对路径:request.getSession()....绝对路径:request.getSession().getServletContext().getRealPath(""+File.separator) 假设项目部署在tomcat中,项目名为test,并且在系统E盘: 则相对路径:\test  绝对路
  • 一.JavaEE获取文件绝对路径 Java代码中: //好像是获取当前类的绝对路径.我放到静态代块里面来,所以这样写.如果是普通的实例方法把最前面的换成:this.getClass() String classPath = DBUtil.class.getClassLoader...
  • 方式2:request.getSession().getServletContext().getRealPath(""),获取到的是当前项目所在的根路径 方式3:System.getProperty(“user.dir”),获取到的是不是那么准确,可能是因为我在eclipse下启动的原...
  • 之前看到网上有提问在开发一个springboot的项目时,在项目部署的时候遇到一个问题:就是我将项目导出为jar包,然后用java -jar 运行时,项目中文件上传的功能无法正常运行,其中获取到存放文件的目录的绝对路径的值...
  • JSP之项目路径问题(${pageContext.request.contextPath},以及绝对路径获取)  本随笔这是作为一个记录使用,以备后查。项目完成之后本地部署OK,本地Linux部署OK,都可以正常的访问,可是当我把它部署到...
  • 最近在做一个个人博客的项目,然后就遇到了使用${pagecontext.request.getcontextpath}获取绝对路径的问题: 在jsp中,我使用 ~~~ ${pagecontext.request.getcontextpath}/blog/edit"> ~~~ 即上面的链接将会...
  • 为了解决这个问题,需要动态获取程序中各类资源的绝对路径。一般资源文件是放在项目根目录下的一些子目录中的。 因此,只要能够动态得到项目根目录的绝对路径,就能准确定位各类资源文件。 这样写出来的程序,不论...
  • 本随笔这是作为一个记录使用,以备后查。项目完成之后本地部署OK,本地Linux部署OK,都可以正常的访问,可是当我把它部署到服务器... 第一步,查看项目部署成功,和部署路径无关,OK。  第二步,查看web.xml...
  • 假如我们要想在web项目中保存文件,其必须先要获取保存文件的绝对路径,我主要采用有如下两种: 假如有如下的目录: shop  -uploadPic  -WEB-INFO  -classes  -upload.class 我们要获取网站部署的...
  • Springboot获取文件路径

    千次阅读 2019-05-05 21:55:51
    之前看到网上有提问在开发一个springboot的项目时,在项目部署的时候遇到一个问题:就是我将项目导出为jar包,然后用java -jar 运行时,项目中文件上传的功能无法正常运行,其中获取到存放文件的目录的绝对路径的值...
  • request.getContextPath()获取的是什么路径 request.getContextPath()拿到的是你的web项目...比如,有个servlet 叫 UploadServlet,它部署在tomcat 下面以后的绝对路径如下: “C:\Program Files\apache-tomcat-8.0.3\
  • 项目开发过程中,在部署过程中,用到了反向代理,这就要求前端代码中不能使用绝对路径。但是我们知道,一般情况下,通过webpack+vuecli默认打包后的HTML、css、js等文件,使用的都是绝对路径。下面可以举几个例子...
  • 项目开发过程中,在部署过程中,用到了反向代理,这就要求前端代码中不能使用绝对路径。但是我们知道,一般情况下,通过webpack+vuecli默认打包后的HTML、css、js等文件,使用的都是绝对路径。下面可以举几个例子...
  • springboot获取项目跟目录

    万次阅读 2017-12-06 16:55:43
    springboot部署之后无法获取项目目录的问题:之前看到网上有提问在开发一个springboot的项目时,在项目部署的时候遇到一个问题:就是我将项目导出为jar包,然后用java -jar 运行时,项目中文件上传的功能无法正常...
  • 项目开发过程中,在部署过程中,用到了反向代理,这就要求前端代码中不能使用绝对路径。但是我们知道,一般情况下,通过webpack+vuecli默认打包后的HTML、css、js等文件,使用的都是绝对路径。下面可以举几个例子...
  • 部署到Tomcat上的web项目的文件在代码中访问,可以先通过request获取项目的根目录绝对路径,然后自己拼接子目录路径,直到文件。方法如下: String realpath=request.getSession().getServletContext()....

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

获取项目部署绝对路径