1 相对路径
根据不同类型项目,例如
(1)javaWeb项目 以容器启动位置为起点。
例如eclipse中开发的项目,
(a)通过eclipse部署到tomcat中,在eclipse中启动服务器,则工作路径为eclipse的安装目录;
(b)而打包部署到tomcat,通过start.bat启动,则工作路径为tomcat/bin(start.bat所在目录);
(2)javaApplication项目 以项目所在位置为准。
例如eclipse中创建的项目,输出System.getProperty("user.dir"),得到路径盘符:/../workspace/项目名,即工作空间的项目下。打包时这些资源会归入lib中。
(3)python由java使用Process等方式启动:
(a)java项目的工作路径如上;
(b)final Process process = Runtime.getRuntime().exec("python xxx.py");中,xxx.py的位置即以此java项目的工作路径开始寻找,可以写相对路径,不能写绝对路径;
(c)py文件的工作路径为java的工作路径,而不是py文件所在位置(可以理解为java项目此时就是py项目的容器吗?)
(4)python双击运行,工作路径为当前位置。
(5)python文件通过cmd运行,工作路径即cmd当前显示的位置。
ps:例如编码使py在当前位置生成txt,则相对路径应为空,txt即会在工作路径处生成;java使用文件流进行读写操作,使用相对路径,则会从工作路径开始找,因此javaWeb项目上传文件有时会出现在eclipse根目录。
pa2:好像有环境变量影响的情况,遇到再说。
2 绝对路径
盘符开头或/开头的路径,依赖本机本地文件结构,可移植性差;可解除项目、项目结构对相对路径的限制。