Java 获取文件路径的方法汇集
import java.io.File; import java.net.URL; import java.net.URLDecoder; import java.util.ArrayList; public class JavaPath1 { public void getPath() throws Exception { ArrayList<String> list = new ArrayList<String>(); list.add(System.getProperty("user.dir")); list.add(new File("").getAbsolutePath()); /** * JavaPath1.class.getClass().getResource("") * 默认在getResource(name)中传递的name为java.lang.Class */ //list.add(JavaPath1.class.getClass().getResource("").getPath()); // list.add(JavaPath1.class.getClass().getResource(".").getPath()); list.add(JavaPath1.class.getClass().getResource("/").getPath()); /** * this.class.getClass().getResource("") * 默认在getResource(name)中传递的name为edu.whu.test.JavaPath1 */ list.add(this.getClass().getResource("").getPath()); list.add(this.getClass().getResource(".").getPath()); list.add(this.getClass().getResource("/").getPath()); list.add(this.getClass().getClassLoader().getResource("") .getPath()); list.add(this.getClass().getClassLoader().getResource(".") .getPath()); //list.add(this.getClass().getClassLoader().getResource("/").getPath()); //list.add(FilePath.class.getClass().getClassLoader().getResource("").getPath()); //list.add(FilePath.class.getClass().getClassLoader().getResource(".").getPath()); //list.add(FilePath.class.getClass().getClassLoader().getResource("/").getPath()); list.add(Thread.currentThread().getContextClassLoader().getResource("").getPath()); list.add(Thread.currentThread().getContextClassLoader() .getResource(".").getPath()); //list.add(Thread.currentThread().getContextClassLoader().getResource("/").getPath()); list.add(ClassLoader.getSystemResource("").getPath()); URL url = Thread.currentThread().getContextClassLoader().getResource("."); list.add(URLDecoder.decode(url.getPath())); list.add(url.toURI().getPath()); for(int i=0;i<list.size();i++){ //System.out.println(list.get(i)); } System.out.println(this.getClass().getCanonicalName()); System.out.println(JavaPath1.class.getClass().getCanonicalName()); System.out.println(this.getClass().getClassLoader().getClass().getCanonicalName()); System.out.println(JavaPath1.class.getClass().getClassLoader()); System.out.println(Thread.currentThread().getContextClassLoader().getClass().getCanonicalName()); } public static void main(String[] args) throws Exception { new JavaPath1().getPath(); } }