前言
开发过程中经常会用到文件的读写,这就不可避免地涉及到路径问题。 使用固定的绝对路径当然方便,但会导致程序的可移植性较差。 例如,如果代码硬编码为在E盘上创建文件,而移植的环境中没有E盘,那么只能更改代码。 ; 或者你需要调用D盘一个很长的路径中的自定义文件,而这个文件路径不在项目文件夹中。 在复制项目代码时很容易错过这个自定义文件,从而给项目的交接带来问题。 不必要的麻烦。 如果我们将自定义的配置文件或者其他需要访问的文件放在项目根目录下的某个文件夹中,并在运行时动态获取项目根目录,那么可以大大提高项目的可移植性。 注意,Web程序的项目根目录在根目录的\项目名下,而Java桌面程序的项目根目录在源代码所在文件夹下。
这个想法是我第一次做涉及文件访问的项目时就想到的,但在实践中经常失败,因为不同情况(Web程序、Java桌面程序)获取项目根目录的方法不同。 同样, (new File("")).() 方法在 Web 环境或桌面程序环境中具有不同的结果。 如果不一一分析和测试,你就会感到困惑。 所以最近我花了一些时间研究了一下,发现一点也不复杂。 我的测试环境是:.6.0; .0.1,其根目录为“D:\Files\Java\.0.1”; 项目源文件所在的根目录是“D:\CHLOE\IT\java\\tests”。
文本
1、在jsp文件或文件中,可以通过().(“/”)获取项目根目录的绝对路径。
.jsp
1 <body> 2jsp文件中获得项目根目录绝对路径
3 <% 4 String realPath=getServletContext().getRealPath("/");//项目绝对路径 5 %> 6 项目根目录的绝对路径为:<%=realPath %> 7