java 获取当前路径

公司项目中,获取当前路径的方法是这样的:

C

//当前的类名就是:GetFilePath public static String getFilePath(String fileName) { String path = GetFilePath.class.getResource("").toString(); if (path != null) { path = path.substring(5, path.indexOf("WEB-INF") + 8);//如果是windwos将5变成6 //System.out.println("current path :" + path); } return (path + fileName); }

个人感觉不是很好,部署到windows和linux下的时候还得重新设置路径。

于是使用了以下1号方法,但是奇怪的是1号方法在linux下路径不对

后来得知公司使用的方法得到的相对路径,而1号方法是得到绝对路径

没有更加详细的测试,以后继续研究。。。

以下是我从网上找的获取路径的方法:

1、利用System.getProperty()函数获取当前路径:

System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径

2、使用File提供的函数获取当前路径:

File directory = new File("");//设定为当前文件夹 try{ System.out.println(directory.getCanonicalPath());//获取标准的路径 System.out.println(directory.getAbsolutePath());//获取绝对路径 }catch(Exceptin e){}

3.java web 项目中

jsp中:

request.getContextPath() request.getSession().getServletContext().getRealPath()

servlet中:

this.getServletContext().getRealPath("/"); this.getServlet().getServletContext().getRealPath("/");

其他说明:

File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。

# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹

# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径

# 至于getPath()函数,得到的只是你在new File()时设定的路径

比如当前的路径为 C:\test :

File directory = new File("abc");

directory.getCanonicalPath(); //得到的是C:\test\abc

directory.getAbsolutePath(); //得到的是C:\test\abc

direcotry.getPath(); //得到的是abc

File directory = new File(".");

directory.getCanonicalPath(); //得到的是C:\test

directory.getAbsolutePath(); //得到的是C:\test\.

direcotry.getPath(); //得到的是.

File directory = new File("..");

directory.getCanonicalPath(); //得到的是C:\

directory.getAbsolutePath(); //得到的是C:\test\..

direcotry.getPath(); //得到的是..

另外:System.getProperty()中的字符串参数如下:

System.getProperty()参数大全

# java.version Java Runtime Environment version

# java.vendor Java Runtime Environment vendor

# java.vendor.url Java vendor URL

# java.home Java installation directory

# java.vm.specification.version Java Virtual Machine specification version

# java.vm.specification.vendor Java Virtual Machine specification vendor

# java.vm.specification.name Java Virtual Machine specification name

# java.vm.version Java Virtual Machine implementation version

# java.vm.vendor Java Virtual Machine implementation vendor

# java.vm.name Java Virtual Machine implementation name

# java.specification.version Java Runtime Environment specification version

# java.specification.vendor Java Runtime Environment specification vendor

# java.specification.name Java Runtime Environment specification name

# java.class.version Java class format version number

# java.class.path Java class path

# java.library.path List of paths to search when loading libraries

# java.io.tmpdir Default temp file path

# java.compiler Name of JIT compiler to use

# java.ext.dirs Path of extension directory or directories

# os.name Operating system name

# os.arch Operating system architecture

# os.version Operating system version

# file.separator File separator ("/" on UNIX)

# path.separator Path separator (":" on UNIX)

# line.separator Line separator ("\n" on UNIX)

# user.name User's account name

# user.home User's home directory

# user.dir User's current working directory

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值