路径怎么写?

  • 我们在项目开发中经常会碰到路径问题,也是许多开发者特别头疼的问题。文件路径到底怎么写,希望用最简单的回答来帮助你。

首先,我们的项目一般分为 Java web项目 和Java应用项目(也就是Java项目)

  1. java应用项目最简单:
    File file = new File(".");
    //查看当前路径位置
    system.out.println(file.getAbsolutePath());
    
    其中 “.” 表示相对路径,相对于java命令运行的目录
    

    这样会输出我们文件的当前路径。

    不过这是我们的编辑器输出的(Eclipse),如果我们去cmd控制台运行这个java类, 就会发现打印出来的路径和编辑器中不一样,是当前运行java命令的路径,这边我就不演示了,详细的大家可以另外花时间来了解,查博客我们主要为了解决问题。

    结论:在Java项目中,"." 代表了java 项目的根目录,也就是工程名的那层目录。

      

  2. 在Java web项目中

"." 也是代表了java命令运行的目录,那java命令运行的目录在哪里呢?

要启动web项目,肯定要去容器的启动目录(这边以tomcat为例)。所以java命令运行是在 tomcat/bin 目录下(因为需要在这个目录下启动startBat)

结论:在web项目中, "." 代表了tomcat/bin目录下开始,所以我们不能使用这种相对路径。

那我们java web项目路径究竟要怎么写呢?下面提供两种方法:

//使用web应用下加载文件资源的方法
//1.getRealPath读取
String path = this.getServletContext.getRealPath("/WEB-INF/classes/你放在src下的文件名");

如果有文件夹多层目录需要带上

例如,你直接在src下放了一个db.properties,那路径就是
this.getServletContext.getRealPath("/WEB-INF/classes/db.properties");

但是,如果你是放在src一个propertiesFloder 文件夹里面
路径就应该这么写:
this.getServletContext.getRealPath("/WEB-INF/classes/propertiesFloder/db.properties");

//第二种获取的方法
this.getServletContext.getResourceAsStream("/WEB-INF/classes/你放在src下的文件名");
路径原理同上,只是第一个方法返回的是字符串,此方法返回的是一个Inpustream流,根据实际需要选择。

猜你喜欢

转载自blog.csdn.net/weixin_41866744/article/details/81607759