大家好,关于j*a获取服务器路径很多朋友都还不太明白,今天小编就来为大家分享关于项目如何获取项目所在的物理根路径的知识,希望对各位有所帮助!

一、请问j*a如何获取当前url路径

1、利用System.getProperty()函数获取当前路径:

System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径

j*a获取服务器路径 项目如何获取项目所在的物理根路径

2、使用File提供的函数获取当前路径:

File directory= new File("");//设定为当前文件夹

try{

System.out.println(directory.getCanonicalPath());//获取标准的路径

System.out.println(directory.getAbsolutePath());//获取绝对路径

}catch(Exceptin e){}

File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。

#对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹

#对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径

#至于getPath()函数,得到的只是你在new File()时设定的路径

二、j*a获取项目resource路径(j*aweb获取项目路径)

几种获取resources目录下的文件方式

一般我们的配置信息默认都是会配置在/src/main/resources/lication.properties(或者lication.yml)文件中,当然,也可以在resources文件夹下添加自己的配置文件,甚至子目录中添加自己的配置文件,那么我们又该如何读取自己添加的配置文件中的内容呢?

我们先定义一个公共的输出配置信息的方法如下:

这里是通过j*a.util下的Properties类来获取配置文件中的属*

添加自定义的配置文件,在resources目录下添加子目录config并添加配置文件db.properties

内容如下:

在j*a中,resources文件夹下的文件在编译后,都是为根目录(classpath)。接下来,准备采用以下的6种方式进行配置内容的读取

在springboot项目我还可以使用如下的方式:

springboot项目中使用

springboot项目中使用

springboot项目中使用,通过@Value注解,但是我们还需要通过@PropertySource("classpath:config/db.properties")

注解指定配置文件的路径,如果是默认的配置文件,如:lication.properties(.yml)就不需要指定路径

通过上述6种方法都可以成功获取到自定义配置文件中的配置信息,如果大家还有更好的方式,可以评论区留言。

j*a怎么获取resources下的文件路径

1.读取本地的xml文件,需要注意对应的路径

//读取xml文件,xmlFile为读取文件的路径DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance;DocumentBuilderbuilder=factory.newDocumentBuilder;Documentdocument=builder.parse(xmlFile);NodeListnodeList=document.getElementsByTagName(thisTag);//指定标签(thisTag)的节点集合for(itni=0;inodeList.getLength;i++){//循环获取每个节点信息Nodenode=nodeList.item(i);NamedNodeMapattributes=node.getAttributes;for(intj=0;jattributes.getLength;j++){Nodeattribute=attributes.item(j);System.out.println(attribute.getNodeName+":"+attribute.getNodeValue);}}

注意:getElementsByTagName方法只是属于document与Element的方法

所以,当针对某个Node查找对应的节点时,需要先强制转换为Element

ElementnodeToElement=(Element)node;NodeListosNodeList=nodeToElement.getElementsByTagName(thisTag);//thisTag为指定标签

2.读取txt文件

一般的数据存储都是键值对的方式在文件中记录,开发人员多是根据已知的键,从文件中取得对应的值。

例如Config.txt中内容为:

name=jack

sex=boy

要从j*a程序中读取该文件的内容

Fileconfig_file=newFile("./Config");//此处使用相对路径Stringconfig_file_fullpath=config_file.getAbsoluteFile.toString;readConfigconfig=newreadConfig(config_file_fullpath);Stringname=config.get("name");//name为jack//对获取的数据进行处理//...

3.读取.csv文件

csv文件一般为表格,是多行多列的数据,列对应相应不同的属*,j*a实现逐行读取每列单元格的值。

如何在j*a中获取当前项目的路径

很多朋友都想了解j*a如何获取当前项目的路径?下面就一起来了解一下吧~

在jsp和class文件中调用的相对路径不同。

在jsp里,根目录是WebRoot

在class文件中,根目录是WebRoot/WEB-INF/classes也可以选用System.getProperty("user.dir")获取工程的绝对路径。

1.jsp中取得路径:

以工程名为TEST为例:

(1)得到包含工程名的当前页面全路径:request.getRequestURI()结果:/TEST/test.jsp(2)得到工程名:request.getContextPath()结果:/TEST(3)得到当前页面所在目录下全名称:request.getServletPath()结果:如果页面在jsp目录下?/TEST/jsp/test.jsp(4)得到页面所在服务器的全路径:lication.getRealPath("页面.jsp")结果:D:esinwebsTESTest.jsp(5)得到页面所在服务器的绝对路径:absPath=new?j*a.io.File(lication.getRealPath(request.getRequestURI())).getParent();结果:D:esinwebsTEST

2.在class类中取得路径:

(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/(2)得到工程的路径:System.getProperty("user.dir")结果:D:TEST

3.在Servlet中取得路径:(1)得到工程目录:request.getSession().getServletContext().getRealPath("")?参数可具体到包名。结果:E:TomcatwebsTEST(2)得到IE栏:request.getRequestURL()结果:(3)得到相对:request.getRequestURI()结果:/TEST/test

j*a中类加载路径和项目根路径获取有几种方式?

package?my;??

??

import?j*a.io.File;??

import?j*a.io.IOException;??

import?j*a..URL;??

??

public?class?MyUrlDemo?{??

??

??????

????public?static?void?main(String[]?args)?{??

????????MyUrlDemo?muDemo?=?new?MyUrlDemo();??

????????try?{??

????????????muDemo.showURL();??

????????}?catch?(IOException?e)?{??

????????????//?TODO?Auto-generated?catch?block??

????????????e.printStackTrace();??

????????}??

????}

public?void?showURL()?throws?IOException?{??

??????????

????????//?第一种:获取类加载的根路径???D:\git\daotie\daotie\target\classes??

????????File?f?=?new?File(this.getClass().getResource("/").getPath());??

????????System.out.println(f);??

??

????????//?获取当前类的所在工程路径;?如果不加“/”??获取当前类的加载目录??D:\git\daotie\daotie\target\classes\my??

????????File?f2?=?new?File(this.getClass().getResource("").getPath());??

????????System.out.println(f2);??

??

????????//?第二种:获取项目路径????D:\git\daotie\daotie??

????????File?directory?=?new?File("");//?参数为空??

????????String?courseFile?=?directory.getCanonicalPath();??

????????System.out.println(courseFile);??

??????????

??

????????//?第三种:??file:/D:/git/daotie/daotie/target/classes/??

????????URL?xmlpath?=?this.getClass().getClassLoader().getResource("");??

????????System.out.println(xmlpath);??

??????

??

????????//?第四种:?D:\git\daotie\daotie??

????????System.out.println(System.getProperty("user.dir"));??

????????/*?

?????????*?结果:?C:\Documents?and?Settings\Administrator\workspace\projectName?

?????????*?获取当前工程路径?

?????????*/??

??

????????//?第五种:??获取所有的类路径?包括jar包的路径??

????????System.out.println(System.getProperty("j*a.class.path"));??

??????????

????}??

}

三、j*a***项目如何获取项目所在的物理根路径

在j*a中获得文件的路径在我们做上传文件操作时是不可避免的。web上运行1:this.getClass().getClassLoader().getResource("/").getPath();this.getClass().getClassLoader().getResource("").getPath();得到的是ClassPath的绝对URI路径。如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/System.getProperty("user.dir");this.getClass().getClassLoader().getResource(".").getPath();得到的是项目的绝对路径。如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war2:this.getClass().getResource("/").getPath();this.getClass().getResource("").getPath();得到的是当前类文件的URI目录。如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes//jebel/helper/this.getClass().getResource(".").getPath();X不能运行3:Thread.currentThread().getContextClassLoader().getResource("/").getPath()Thread.currentThread().getContextClassLoader().getResource("").getPath()得到的是ClassPath的绝对URI路径。如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/Thread.currentThread().getContextClassLoader().getResource(".").getPath()得到的是项目的绝对路径。如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war在本地运行中1:this.getClass().getClassLoader().getResource("").getPath();this.getClass().getClassLoader().getResource(".").getPath();得到的是ClassPath的绝对URI路径。如:/D:/myProjects/hp/WebRoot/WEB-INF/classesthis.getClass().getClassLoader().getResource(".").getPath();X不能运行2:this.getClass().getResource("").getPath();this.getClass().getResource(".").getPath();得到的是当前类文件的URI目录。如:/D:/myProjects/hp/WebRoot/WEB-INF/classes//jebel/helper//D:/myProjects/hp/WebRoot/WEB-INF/classes/得到的是ClassPath的绝对URI路径。如:/D:/myProjects/hp/WebRoot/WEB-INF/classes3:Thread.currentThread().getContextClassLoader().getResource(".").getPath()Thread.currentThread().getContextClassLoader().getResource("").getPath()得到的是ClassPath的绝对URI路径。。如:/D:/myProjects/hp/WebRoot/WEB-INF/classesThread.currentThread().getContextClassLoader().getResource("/").getPath()X不能运行最后在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。还有request.getContextPath();在Weblogic中要用request.getServletContext().getContextPath();但如果打包成war部署到Weblogic服务器,项目内部并没有文件结构的概念,用这种方式是始终得到null,获取不到路径,目前还没有找到具体的解决方案。