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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中类加载路径和项目根路径获取有几种方式?相关的知识,希望对你有一定的参考价值。

参考技术A package my;  
  
import java.io.File;  
import java.io.IOException;  
import java.net.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("java.class.path"));  
          
      

java怎么取到web服务的根路径

java获取根路径有两种方式:

1)在servlet可以用一下方法取得:
request.getRealPath(“/”)
例如:filepach = request.getRealPath(“/”)+”//upload//”;
2)不从jsp,或servlet中获取,只从普通java类中获取:
String path = getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
SAXReader() saxReader = new SAXReader();
if(path.indexOf(“WEB-INF”)>0)
path = path.substring(0,path.indexOf(“/WEB-INF/classes”)+16);
// ‘/WEB-INF/classes’为16位
document = saxReader.read(path+filename);
else
document = saxReader.read(getClass().getResourceAsStream(filename));
参考技术A Java取得web工程目录获取方法:
1.可以在servlet的init方法里
String path = getServletContext().getRealPath("/");
这将获取web项目的全路径
例如 :E:\eclipseM9\workspace\tree\
tree是web项目的根目录
2.也可以随时在任意的class里调用:
this.getClass().getClassLoader().getResource("/").getPath();
这将获取到classes目录的全路径
例如 : E:\eclipseM9/workspace/tree/WEB-INF/classes/
这个方法也可以不在web环境里确定路径。
参考技术B 右键点击项目名,点最后一个选项,选path就能看到路径 参考技术C request.getPath();

貌似这个,反正样子差不多 你找找看 (response.getPath())
参考技术D jsp中,request.getContextPath()

以上是关于java中类加载路径和项目根路径获取有几种方式?的主要内容,如果未能解决你的问题,请参考以下文章

IDEA中获取类加载路径和项目根路径

java怎么取到web服务的根路径

普通JAVA类 如何获取,WEB项目的根路径

获取项目根路径的四种方式

java项目获取根路径(web项目和application项目的区分)

java 项目如何获取项目所在的物理根路径