java怎样获取当前目录路径

Python017

java怎样获取当前目录路径,第1张

很多朋友都想知道java如何获取当前目录路径?下面就一起来了解一下吧~

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){} 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

JAVA中获取路径 关键字: java中获取路径

1、jsp中取得路径:

以工程名为TEST为例:

(1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp (2)得到工程名:request.getContextPath() 结果:/TEST (3)得到当前页面所在目录下全名称:request.getServletPath() 结果:如果页面在jsp目录下 /TEST/jsp/test.jsp (4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp") 结果:D:/resin/webapps/TEST/test.jsp (5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent() 结果:D:/resin/webapps/TEST

2、在类中取得路径: (1)类的绝对路径:Class.class.getClass().getResource("/").getPath() 结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ (2)得到工程的路径:System.getProperty("user.dir") 结果:D:/TEST

按照jdk Doc上的说法”绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录.”\x0d\x0a \x0d\x0a相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径我们必须弄明白.按照上面jdk文档上讲的这个路径是”当前用户目录”也就是”java虚拟机的调用目录”.更明白的说这个路径其实是我们在哪里调用jvm的路径.举个例子:\x0d\x0a \x0d\x0a假设有一java源文件Example.java在d盘根目录下,该文件不含package信息.我们进入命令行窗口,然后使用”d:”命令切换到d盘根目录下,然后用”javac Example.java”来编译此文件,编译无错后,会在d盘根目录下自动生成”Example.class”文件.我们在调用”java Example”来运行该程序.此时我们已经启动了一个jvm,这个jvm是在d盘根目录下被启动的,所以此jvm所加载的程序中File类的相对路径也就是相对这个路径的,即d盘根目录:D:/.同时” 当前用户目录”也是D:/.在System.getProperty(“user.dir”)系统变量”user.dir”存放的也是这个值.\x0d\x0a我们可以多做几次试验,把”Example.class”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的.\x0d\x0a搞清了这些,我们可以使用相对路径来创建文件,例如:\x0d\x0aFile file = new File(“a.txt”)\x0d\x0aFile.createNewFile()\x0d\x0a假设jvm是在”D:/”下启动的,那么a.txt就会生成在D:/a.txt\x0d\x0a此外,这个参数还可以使用一些常用的路径表示方法,例如”.”或”./”代表当前目录,这个目录也就是jvm启动路径.所以如下代码能得到当前目录完整路径:\x0d\x0aFile f = new File(“.”)\x0d\x0aString absolutePath = f.getAbsolutePath()\x0d\x0aSystem.out.println(absolutePath)//D:/\x0d\x0a最后要说说在eclipse中的情况:\x0d\x0aEclipse中启动jvm都是在项目根路径上启动的.比如有个项目名为blog,其完整路径为:D:/work/IDE/workspace/blog.那么这个路径就是jvm的启动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:/work/IDE/workspace/blog.”\x0d\x0a \x0d\x0aTomcat中的情况.\x0d\x0a如果在tomcat中运行web应用,此时,如果我们在某个类中使用如下代码:\x0d\x0aFile f = new File(“.”)\x0d\x0aString absolutePath = f.getAbsolutePath()\x0d\x0aSystem.out.println(absolutePath)\x0d\x0a那么输出的将是tomcat下的bin目录.我的机器就是” D:/work/server/jakarta-tomcat-5.0.28/bin/.”,由此可以看出tomcat服务器是在bin目录下启动jvm的.其实是在bin目录下的” catalina.bat”文件中启动jvm的.