java 怎么获取web根目录

java 怎么获取web根目录,第1张

在java中获得文件的路径在我们做上传文件 *** 作时是不可避免的。 web 上运行 1:thisgetClass()getClassLoader()getResource("/")getPath(); thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。

以工程名为TEST为例:

(1)得到包含工程名的当前页面全路径:requestgetRequestURI(),结果:/TEST/testjsp。

(2)得到工程名:requestgetContextPath(),结果:/TEST。

(3)得到当前页面所在目录下全名称:requestgetServletPath()。结果:如果页面在jsp目录下 /TEST/jsp/testjsp。

(4)得到页面所在服务器的全路径:applicationgetRealPath("页面jsp"),结果D:/resin/webapps/TEST/testjsp。

(5)得到页面所在服务器的绝对路径:absPath=new javaioFile(applicationgetRealPath(requestgetRequestURI()))getParent();

结果:D:/resin/webapps/TEST。

拓展:在类中取得路径的方法

(1)类的绝对路径:String u=ClassclassgetClass()getResource("/")getPath()

结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/

(2)得到工程的路径:SystemgetProperty("userdir")

结果:D:/TEST

1、利用SystemgetProperty()函数获取当前路径:

Systemoutprintln(SystemgetProperty("userdir"));//userdir指定了当前的路径

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

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

try{

Systemoutprintln(directorygetCanonicalPath());//获取标准的路径

Systemoutprintln(directorygetAbsolutePath());//获取绝对路径

}catch(Exceptin e){}

FilegetCanonicalPath()和FilegetAbsolutePath()大约只是对于new File("")和new

File("")两种路径有所区别。

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

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

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

Java基础知识教程:

你按下面的步骤就可以设置了。有问题可以百度HI我:步骤如下:

1首先,打开配置环境变量界面,如下 *** 作:我的电脑---属性---高级---环境变量

2系统变量(S)中配置如下:

21,新建系统变量:

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk150_17(该目录为JDK安装的目录)

22,编辑CLASSPATH,如果没有该变量则新建,

变量名:CLASSPATH

变量值:%JAVA_HOME%\lib\dtjar;%JAVA_HOME%\lib\toolsjar;(注:该变量值置于CLASSPATH即可,

其中:变量值最后要记得加“;”)

23,编辑PATH,如果没有则新建

变量名:PATH

变量值:;%JAVA_HOME%\bin; (注:该变量值置于PATH前面,如果你只有一个JDK版本,可以不用编辑PATH,如果为了区别版本,那还是配置PATH变量值)。

在java中获得文件的路径在我们做上传文件 *** 作时是不可避免的。

web 上运行

1:thisgetClass()getClassLoader()getResource("/")getPath();

thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/

SystemgetProperty("userdir");

thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 项目的绝对路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar

2:thisgetClass()getResource("/")getPath();

thisgetClass()getResource("")getPath(); 得到的是当前类 文件的URI目录。

如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/com/jebel/helper/

thisgetClass()getResource("")getPath(); X 不 能运行

3:ThreadcurrentThread()getContextClassLoader()getResource("/")getPath()

ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 ClassPath的绝对URI路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/

ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 项目的绝对路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar

在本地运行中

1:thisgetClass()getClassLoader()getResource("")getPath();

thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

thisgetClass()getClassLoader()getResource("")getPath(); X 不 能运行

2:thisgetClass()getResource("")getPath();

thisgetClass()getResource("")getPath(); 得到的是当前类 文件的URI目录。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/

/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的绝对URI路径。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

3:ThreadcurrentThread()getContextClassLoader()getResource("")getPath()

ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 ClassPath的绝对URI路径。。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

ThreadcurrentThread()getContextClassLoader()getResource("/")getPath() X 不 能运行

最后

在Web应用程序中,我们一般通过ServletContextgetRealPath("/")方法得到Web应用程序的根目录的绝对路径。

还有requestgetContextPath(); 在Weblogic中要用requestgetServletContext()getContextPath();但如果打包成war部署到Weblogic服务器,项目内部并没有文件结构的概念,用这种方式是始终得到null,获取不到路径,目前还没有找到具体的解决方案。

需要使用路径时,用下面的方法取得项目根目录的绝对路径(Tools为方法类)

public static String getRootPath() {

String classPath = ToolsclassgetClassLoader()getResource("/")getPath();

String rootPath = "";

//windows下

if("\\"equals(Fileseparator)){

rootPath = classPathsubstring(1,classPathindexOf("/WEB-INF/classes"));

rootPath = rootPathreplace("/", "\\");

}

//linux下

if("/"equals(Fileseparator)){

rootPath = classPathsubstring(0,classPathindexOf("/WEB-INF/classes"));

rootPath = rootPathreplace("\\", "/");

}

return rootPath;

}

一 相对路径的获得

说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)

String relativelyPath=SystemgetProperty("userdir");

上述相对路径中,java项目中的文件是相对于项目的根目录

web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)

二 类加载目录的获得(即当运行时某一类时获得其装载目录)

11)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)

InputStream is=TestActionclassgetClassLoader()getResourceAsStream("testtxt");

(testtxt文件的路径为 项目名\src\testtxt;类TestAction所在包的第一级目录位于src目录下)

上式中将TestAction,testtxt替换成对应成相应的类名和文件名字即可

12)通用方法二 (此方法和11中的方法类似,不同的是此方法必须以'/'开头,参考>

以上就是关于java 怎么获取web根目录全部的内容,包括:java 怎么获取web根目录、如何获得当前Java文件的路径、如何从程序中获得/设置环境变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9325505.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存