java 路径获取

第一种:
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin
获取当前类的所在工程路径;
如果不加“/”
File f = new File(this.getClass().getResource("").getPath());
System.out.println(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin\com\test
获取当前类的绝对路径;

第二种:
File directory = new File("");//参数为空
String courseFile = directory.getCanonicalPath() ;
System.out.println(courseFile);
结果:
C:\Documents and Settings\Administrator\workspace\projectName
获取当前类的所在工程路径;

第三种:
URL xmlpath = this.getClass().getClassLoader().getResource("selected.txt");
System.out.println(xmlpath);
结果:
file:/C:/Documents%20and%20Settings/Administrator/workspace/projectName/bin/selected.txt
获取当前工程src目录下selected.txt文件的路径

第四种:
System.out.println(System.getProperty("user.dir"));
结果:
C:\Documents and Settings\Administrator\workspace\projectName
获取当前工程路径

第五种:
System.out.println( System.getProperty("java.class.path"));
结果:
C:\Documents and Settings\Administrator\workspace\projectName\bin
获取当前工程路径


例子:

package com.vaolan.util;

import java.io.File;
import java.io.IOException;
import java.net.URL;

public class PathUtils {
	/**
	 * 获取工程根目录路径
	 */
	public static String getRootPath() {
		return PathUtils.class.getResource("/").getPath();
	}
	
	/**
	 * 获取工程根目录路径
	 */
	public static String getProjectPath() {
		File dir = new File("");
		String courseFile = null;
		try {
			courseFile = dir.getCanonicalPath();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return courseFile;
	}
	
	/**
	 * 通过 user.dir 获取路径
	 * @return
	 */
	public static String getProjectPathByUser() {
		return System.getProperty("user.dir");
	}
	
	/**
	 * 获取当前项目的所有路径,包括 jar 包路径
	 * @return
	 */
	public static String getAllPaths() {
		return System.getProperty("java.class.path");
	}
	
	/**
	 * 获取当前类路径
	 * @return
	 */
	public static <T> String getCurPath(Class<T> t) {
		File f = new File(t.getResource("").getPath());
		return f.toString();
	}
	
	/**
	 * 获取当前资源所在路径:资源必存在于 src 目录下
	 * @param resourceName
	 * @return
	 */
	public static String getCurPath(String resourceName) {
		URL path = PathUtils.class.getClassLoader().getResource(resourceName);
		return path.toString();
	}
	
	public static void main(String[] args) {
		System.out.println(getRootPath());
		System.out.println(getCurPath(PathUtils.class));
		System.out.println(getCurPath("constant.properties"));
		System.out.println(getProjectPath());
		System.out.println(getProjectPathByUser());
		System.out.println(getAllPaths());
	}
}

你可能感兴趣的:(java 路径获取)