精华内容
下载资源
问答
  • springboot获取当前项目路径的地址 System.getProperty("user.dir") ...//获取classes目录绝对路径 String path = ClassUtils.getDefaultClassLoader().getResource("").getPath(); String path = R...

    springboot获取当前项目路径的地址

    System.getProperty("user.dir")

    输出目录:  G:\outshine\wangsoso

    //获取classes目录绝对路径

    String path = ClassUtils.getDefaultClassLoader().getResource("").getPath();

    String path = ResourceUtils.getURL("classpath:").getPath();

    输出目录:  /G:/outshine/wangsoso/target/classes/

    //如果上传目录为/static/images/upload/,则可以如下获取:
    File upload = new File(path.getAbsolutePath(),"static/images/upload/");
    if(!upload.exists()) upload.mkdirs();
    System.out.println("upload url:"+upload.getAbsolutePath());
    //在开发测试模式时,得到的地址为:{项目跟目录}/target/static/images/upload/
    //在打包成jar正式发布时,得到的地址为:{发布jar包目录}/static/images/upload/

    注意:以jar包发布项目时,我们存储的路径是与jar包同级的static目录,因此我们需要在jar包目录的application.properties配置文件中设置静态资源路径,如下所示:

    #设置静态资源路径,多个以逗号分隔

    spring.resources.static-locations=classpath:static/,file:static/

    以jar包发布springboot项目时,默认会先使用jar包跟目录下的application.properties来作为项目配置文件。

    如果在不同的目录中存在多个配置文件,它的读取顺序是:

            1、config/application.properties(项目根目录中config目录下)

            2、config/application.yml

            3、application.properties(项目根目录下)

            4、application.yml

            5、resources/config/application.properties(项目resources目录中config目录下)

            6、resources/config/application.yml

            7、resources/application.properties(项目的resources目录下)

            8、resources/application.yml

    注:

         1、如果同一个目录下,有application.yml也有application.properties,默认先读取application.properties。

         2、如果同一个配置属性,在多个配置文件都配置了,默认使用第1个读取到的,后面读取的不覆盖前面读取到的。

         3、创建SpringBoot项目时,一般的配置文件放置在“项目的resources目录下”

     

    转载于:https://www.cnblogs.com/yuluoxingkong/p/11576676.html

    展开全文
  • 一、web项目根目录的获得(发布之后),java原生类中不可以使用1 从servlet出发可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)ServletContext s1=this.getServletContext(); String temp...
    </pre>一、web项目根目录的获得(发布之后),java原生类中不可以使用1 从servlet出发可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)<pre name="code" class="java">ServletContext s1=this.getServletContext();
    String temp=s1.getRealPath("/"); (关键) 


    结果形如:F:\tomcat-6.0.36\webapps\test\(test为项目名字)
    如果是调用了s1.getRealPath("")则输出F:\tomcat-6.0.36\webapps\test(少了一个"\")

    2 从httpServletRequest出发(没有请求的话会抛空指针导常)
    String path=request.getSession().getServletContext().getRealPath("/");
    结果形如: F:\tomcat-6.0.36\webapps\test\


    二、属性文件的读取: 
     1、filePath为.properties必须为绝对路径,相对路径找不到该文件
     Properties props = new Properties();  
     InputStream in = lnew BufferedInputStream( new FileInputStream(filePath));
     p.load(in); 
     String realPath=props.getProperty("key");  

     2、filePath可为.properties相对路径
     Properties props = new Properties();  
     props.load(NewUserController.class.getClassLoader().getResourceAsStream(filename));
     String realPath=props.getProperty("key");  
     ps:在读写操作文件时,使用第一种方式做为输入流(InputStream)可以读写操作,第二种方式仅限于读取输入流(InputStream),而写入不到文件中,但是不报错的,同时会将你相对路径的文件拷贝到tomcat所在盘符根目录下建立文件。我tomcat在E盘所以会在E盘,则将我项目中相对路径文件拷贝到E盘下,之后修改这个文件!


    三、获取服务器路径的各种方式
            //获取服务器中绝对地址,带file: file:/D:/wc/.metadata/.plugins/org.eclipse.wst.server.core/tmp7/wtpwebapps/wanxue/WEB-INF/classes/
    	System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
    	System.out.println(this.getClass().getResource("/"));
    
    
    	//获取服务器中绝对地址 /E:/workSoftware/apache-tomcat-7.0.56/webapps/wanxue/WEB-INF/classes/
            System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath());
    
    
    	//获取当前类的在服务器中绝对地址 /E:/workSoftware/apache-tomcat-7.0.56/webapps/wanxue/WEB-INF/classes/
            System.out.println(this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath());
    
    
            //获取当前项目在部署在服务器的绝对位置,并去掉路径前的下划线  E:/workSoftware/apache-tomcat-7.0.56/webapps/wanxue/WEB-INF/classes/
            String path = switchDServiceImpl.class.getClassLoader().getResource("") .getPath().substring(1);  

    ps:这个服务器地址为你在eclipse中配置Apache Tomcat中的部署路径,默认路径为 workspace/.metadata/.plugins/org.eclipse.core.resources/.projects
    ps:修改后Eclipse中项目在Apache Tomcat中的部署路径,地址: 点击打开链接
    ps:做项目过程中,一定要区分eclipse的默认项目Apache Tomcat的部署路径,自己的项目工作目录及自己安装Apache Tomcat安装目录,以免混淆。


    四、获取其他路径地址
    	//tomcat根目录  E:\workSoftware\apache-tomcat-7.0.56
    	System.out.println(System.getProperty("catalina.home").toString());
    
    	//eclipse根目录地址  E:\workSoftware\eclipse
            System.out.println(System.getProperty("user.dir"));
            System.out.println((new File("")).getAbsolutePath());
            System.out.println(System.getProperty("user.dir").replace("bin", "webapps"));
    



    五、JAVA读写操作代码
    <span style="white-space:pre">	</span>//开关配置地址,获取当前项目在部署在服务器的绝对位置
    	static String filePath =switchDServiceImpl.class.getClassLoader().getResource("") .getPath().substring(1)+"switchState.properties"; 
    	/**
    	 * @author 王超
    	 * return 根据key取得value值
    	 */  
    	public  String keyValue(String key) {
    		Properties pps = new Properties();
    		try {
    			InputStream in = new BufferedInputStream (new FileInputStream(filePath));  
    			pps.load(in);
    			String value = pps.getProperty(key);
    			return value;
    		}catch (Exception e) {
    			e.printStackTrace();
    			return "switchState.properties路径找不到";
    		}
    	}
    	/**
    	 * 修改properties中键值对
    	 * @author 王超
    	 * @param  key 键
    	 * @param  value 值 
    	 */
    	public  void writeProperties( String key, String value) {
    		Properties pps = new Properties();
    		InputStream in;
    		try {
    			in = new FileInputStream(filePath);
    			//从输入流中读取属性列表(键和元素对) 
    			pps.load(in);
    			//调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。  
    			//强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
    			OutputStream out = new FileOutputStream(filePath);
    			pps.setProperty(key, value);
    			//以适合使用 load 方法加载到 Properties 表中的格式,  
    			//将此 Properties 表中的属性列表(键和元素对)写入输出流  
    			pps.store(out, "Update " + key + " name");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}

    ps:这里采用new BufferedInputStream (new FileInputStream(filePath))来进行读写文件操作,在"三"中有介绍的
    ps:调用keyValue(key)读取文件,调用writeProperties(key,value)进行添加或修改,当key存在则修改,不存在则添加键值对!
    ps:在java项目中可以使用File.separator代表下划线


    展开全文
  • JavaWeb项目上传证书.pfx走项目部署获取出部署后的路径 (一):获取路径保证不会随着机器的环境变化而变化(生产环境) /** * 展示项目文件路径地址 对业务无任何影响 */ public void ...

    JavaWeb项目上传证书.pfx走项目部署获取出部署后的路径

    (一):获取的路径保证不会随着机器的环境变化而变化(生产环境)

     /**
         * 展示项目文件路径地址  对业务无任何影响
         */
        public void showProjectFilePath() {
            String path = System.getProperty("user.dir");
            String path1 = MemberRegisterMangerImpl.class.getResource("/").getPath();
            System.out.println(MemberRegisterMangerImpl.class.getResource("/"));
            // Class文件所在路径
            log.info("=======user.dir======="+path);
            log.info("=======class.getResource======="+path1);
    
            String jueduilujing1 = this.getClass().getClassLoader().getResource("/").getPath();
            String jueduilujing2 = this.getClass().getClassLoader().getResource("").getPath();
    
            log.info("=======jueduilujing1======="+jueduilujing1);
            log.info("=======jueduilujing2======="+jueduilujing2);
    
            // 获取当前类的加载目录,如果有“/”,获取当前类的所在工程路径
            String gognchenglujing1 = this.getClass().getResource("").getPath();
            String gognchenglujing2 = this.getClass().getResource("/").getPath();
            log.info("=======gognchenglujing1======="+gognchenglujing1);
            log.info("=======gognchenglujing2======="+gognchenglujing2);
            //项目的绝对路径
            String xiangmujueduilujing = this.getClass().getClassLoader().getResource(".").getPath();
            log.info("=======xiangmujueduilujing======="+xiangmujueduilujing);
    
            //另一种获取当前的classpath的绝对uri路径的方法
            String urijueduilujing1 = Thread.currentThread().getContextClassLoader().getResource("/").getPath();
            String urijueduilujing2 = Thread.currentThread().getContextClassLoader().getResource("").getPath();
            log.info("=======另一种获取当前的classpath的绝对uri路径的方法urijueduilujing1======="+urijueduilujing1);
            log.info("=======另一种获取当前的classpath的绝对uri路径的方法urijueduilujing2======="+urijueduilujing2);
            //项目的绝对路径
            String xiangmujueduilujing2 = Thread.currentThread().getContextClassLoader().getResource(".").getPath();
            log.info("=======xiangmujueduilujing2======="+xiangmujueduilujing2);
        }

    (二):生产环境打印出来的日志

    (1)user.dir = /home/baofoo
    
    (2)class.getResource = /usr/local/baofoo4/tomcat-1/webapps/ma-query/WEB-INF/classes/
    
    (3)jueduilujing1 = 	/usr/local/baofoo4/tomcat-1/webapps/ma-query/WEB-INF/classes/
    
    (4)jueduilujing2 = 	/usr/local/baofoo4/tomcat-1/webapps/ma-query/WEB-INF/classes/
    
    (5)gognchenglujing1 = file:/usr/local/baofoo4/tomcat-1/webapps/ma-query/WEB-INF/lib/ma-query-manager-4.1.13.jar!/com/baofoo/ma/query/manager/impl/
    
    (6)gognchenglujing2 = /usr/local/baofoo4/tomcat-1/webapps/ma-query/WEB-INF/classes/
    
    (7)xiangmujueduilujing = /usr/local/baofoo4/tomcat-1/lib/
    
    (8)另一种获取当前的classpath的绝对uri路径的方法urijueduilujing1 = /usr/local/baofoo4/tomcat-1/webapps/ma-query/WEB-INF/classes/
    
    (9)另一种获取当前的classpath的绝对uri路径的方法urijueduilujing2 = /usr/local/baofoo4/tomcat-1/webapps/ma-query/WEB-INF/classes/
    
    (10)xiangmujueduilujing2 = /usr/local/baofoo4/tomcat-1/lib/

    (三):随项目部署的认证文件在项目工程的位置

     

     

    展开全文
  • 需要 : 获取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;	
    	}
    }
    

     

    展开全文
  • 使用jQuery获取部署文件的绝对路径

    千次阅读 2014-10-20 21:49:31
    代码” ${pageContext.request.contextPath}”的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。 缺点: 操作不便,其他工具无法正确解释${pageContext.request.contextPath}
  • 获取web项目绝对路径的方法总结

    千次阅读 2017-03-27 11:56:15
     1、获取文件的绝对路径 String file="文件";(例如:data.mdb) String path=application.getRealPath(file); 结果: E:\java_web\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps...
  • springboot获取当前项目路径的地址 System.getProperty("user.dir") ...//获取classes目录绝对路径 String path = ClassUtils.getDefaultClassLoader().getResource("").getPath(); String path = Resour...
  • war包部署获取绝对路径问题

    千次阅读 2015-12-09 12:35:14
    项目以war包的形式部署时,request.getServletContext().getRealPath获取不到路径 返回null, 原因如下: 解决办法: -------------下班后填补内容-----------------------------------------
  • 项目很多地方都用了路径变量或参数,部署在不同设备上项目各文件的相对路径虽没有变,但绝对路径却始终在变化,简单粗暴的方式可以find项目名字获取项目路径拼接获取项目根目录和其他文件目录,但希望可以有更文明的...
  • Location:电脑上的此项目绝对路径 相对路径 绝对路径 手动拼接 String path1 = Thread.currentThread().getContextClassLoader().getResource("").getPath();//获取当前资源的虚拟路径 Syste
  • 首先在 web.xml文件里面配置 <context-param> <param-name>webAppRootKey</param-name> ...例如有项目A部署在tomcat里面,那么通过这样得到的路径就是 D:/tomcat/webapps/A/
  • 1、request.getContextPath():获取项目名 2、request.getServletPath():获取servlet名 3、request.getPathInfo():取得Servlet后的URL名,不包括URL参数 4、request.getRequestURL():取得不包括参数的URL 5、...
  • js获取项目路径 写道 //js获取项目路径,如: http://localhost:7070/mbservfunction getRootPath(){ //获取当前网址,如: ...
  • Java中使用的路径,分为两种:绝对路径和相对路径。归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源...
  • Java中使用的路径,分为两种:绝对路径和相对路径。归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源...
  • JSP获取绝对路径

    千次阅读 2016-10-13 21:34:22
    在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下: 一、使用${pageContext.request.contextPath}  代码” ${pag
  • 我们可以通过在程序运行时,计算出程序的绝对路径,从而得到程序所在目录的绝对路径,进而获取程序各类资源的绝对路径。 我八年前写过一篇文章《Python怎样得到资源文件的绝对路径》,就是在Python中利用这个思路,...
  • java获取项目路径

    千次阅读 2016-05-26 15:11:25
    经常需要在项目中进行路径的获取,目前就java项目和web项目中如何...获取项目文件夹的根目录,如果在web中使用,则可能获取到不同的路径,我试过把web项目部署在tomcat下,输出则是tomcat/bin的目录 File direc
  • Java Web 获取资源路径之绝对路径

    千次阅读 2018-08-06 11:25:42
    这是我部署在tomcat服务器之后,右键项目选择“Browse deployment location...”看到的结构: 可以看到,在tomcat服务器下,应用程序的根目录就是原来项目WebRoot下面的内容。想要获取a.properties、b.properties...
  • js获取项目路径

    2016-03-16 11:51:51
    js获取项目路径
  • jsp 获取项目路径,java获取项目路径

    万次阅读 2013-06-21 09:11:22
    1. 获取web服务器项目的真实物理路径 request.getSession().getServletContext().getRealPath("/"); 2. 相对路径的获得 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一
  • //eclipse部署工程 String path = request.getServletContext().getRealPath( File.separator+ "WEB-INF" + File.separator + "platform"+ File.separator ...
  • 一,获取当前的系统路径,得到项目的名字 String path = request.getContextPath(); 假如注释掉String path = request.getContextPath();运行页面就会报500错误。 先声明后使用  String path = ...
  • 获取项目的根路径

    2013-05-08 14:12:38
    getServletContext().getRealPath() 解决之道 ...今天上午写导出Excel文档并上载的程序时出现如下错误码 null/sdfsdfsdfsdfs.xls ,前面路径为空。报一个异常在web界面中,郁闷中,检查代码,发现在自己电脑上运行完
  • public static String getUrl() { String path = null;...// 此时获取到的路径前面带一个多余的符号通过字符串解决即可获取实际的绝对路径 获取路径后 getUrl()+"\\libs\\a.dll" 方式拼接处理
  • java获取项目访问路径

    2015-01-10 15:53:23
    (1)类的绝对路径:Class.class.getClass().getResource("/").getPath() 结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ (2)得到工程的路径:System.getProperty("user.dir") 结果:D:\TEST 2.在Servle
  • 获取Web项目路径

    2015-12-27 23:40:53
    相对路径:request.getSession()....绝对路径:request.getSession().getServletContext().getRealPath(""+File.separator) 假设项目部署在tomcat中,项目名为test,并且在系统E盘: 则相对路径:\test  绝对路

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,444
精华内容 9,377
关键字:

获取项目部署绝对路径