资讯动态

揭秘Java当前路径获取的7种方法

发布时间:2026/10/26 1:57:17 来源:尧图企业网站定制
1. 现在咱们要去弄明白那个当前路径到底是什么情况, 要知道它其实就是指的绝对路径。packagep01;importjava.io.File;importjava.io.IOException;importjava.net.URL;publicclassHello01 {publicstaticvoidmain(String[] args) {System.out.println(getCurrentPath1());//D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binSystem.out.println(newHello01().getCurrentPath2());//D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\bin\p01System.out.println(getCurrentPath3());//D:\eclipseJavaWorkspace\eclipse202006Workspace\HelloSystem.out.println(getCurrentPath4());//file:/D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/System.out.println(getCurrentPath5());//D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binSystem.out.println(getCurrentPath6());//D:\eclipseJavaWorkspace\eclipse202006Workspace\HelloSystem.out.println(getCurrentPath7());///D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin//*结果D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binD:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\bin\p01D:\eclipseJavaWorkspace\eclipse202006Workspace\Hellofile:/D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binD:\eclipseJavaWorkspace\eclipse202006Workspace\HelloD:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\bin*/}//获取当前类的所在工程路径;publicstaticString getCurrentPath1() {File f newFile(Hello01.class.getResource(/).getPath());returnf.getPath();}//获取当前类的绝对路径publicString getCurrentPath2() {File f newFile(this.getClass().getResource().getPath());returnf.getPath();}//获取当前类的所在工程路径;publicstaticString getCurrentPath3() {File directory newFile();//参数为空//getCanonicalPath()返回的就是标准的将符号完全解析的路径String courseFile ;try{courseFile directory.getCanonicalPath();}catch(IOException e) {e.printStackTrace();}returncourseFile;}//获取当前类的所在工程路径;//file:/D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/publicstaticString getCurrentPath4() {URL path Thread.currentThread().getContextClassLoader().getResource();returnpath.toString();}publicstaticString getCurrentPath5() {returnSystem.getProperty(java.class.path);}publicstaticString getCurrentPath6() {returnSystem.getProperty(user.dir);}publicstaticString getCurrentPath7() {String path Thread.currentThread().getContextClassLoader().getResource().getPath();///D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/String p newFile(path).getAbsolutePath();//D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binreturnp;}}View Code2. 获取资源文件的路径, 或者读取文件。获取src下资源文件编译后的路径即classes路径String s2 Thread.currentThread().getContextClassLoader().getResource().getPath(); // /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin///String s3 Thread.currentThread().getContextClassLoader().getResource(/).getPath();// java工程下报错NullPointerExceptionString s4 Thread.currentThread().getContextClassLoader().getResource(test.txt).getPath();// /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/test.txt或者 类名.class.getClassLoader().getResource().getPath();或者 this.class.getClassLoader().getResource().getPath();//此方法获得的path虽然前面多一个“/”但仍然可以用于构造FileFile file2 new File(s2);File file4 new File(s4);InputStream in new BufferedInputStream(new FileInputStream(new File(s2)));//还可以 使用如下直接返回输入流对象InputStream resourceAsStream Thread.currentThread().getContextClassLoader().getResourceAsStream(test.txt);//test.txt在src夹下即classpath下if(null resourceAsStream) {throw new RuntimeException(nullPointer...);}else {StringBuilder sb new StringBuilder();byte[] buf new byte[512];int len -1;try {while((len resourceAsStream.read(buf))!-1) {sb.append(new String(buf,0,len));}System.out.println(sb.toString());} catch (IOException e) {e.printStackTrace();}}

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑