java开发常遇到路径问题

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"));

 }

}
用于附件上传下载获取当前项目路径的方法

(1)、request.getRealPath("/");//不推荐使用获取工程的根路径
(2)、request.getRealPath(request.getRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用
(3)、request.getSession().getServletContext().getRealPath("/");//获取工程的根路径,这个方法比较好用,可以直接在servlet和jsp中使用
(4)、 this.getClass().getClassLoader().getResource("").getPath();//获取工程classes 下的路径,这个方法可以在任意jsp,servlet,java文件中使用,因为不管是jsp,servlet其实都是java程序,都是一个 class。所以它应该是一个通用的方法。

注意: 在用IDEA开发时,项目启动的是预加载的项目,不会生成空的文件夹,做附件保存时,要先创建文件夹,在继续操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值