java的System.getProperty()方法可以獲取的值,如下:
對於Java程序,無論是未打包的還是打包的JAR或WAR文件,有時候都需要獲取它運行所在目錄信息,如何做到這一點呢?
1 /**
2 * 得到當前應用的系統路徑 3 */
4 public class SystemPath { 5
6 /*replace和replaceAll是JAVA中常用的替換字符的方法,它們的區別是: 7 1)replace的參數是char和CharSequence,即可以支持字符的替換,也支持字符串的替換(CharSequence即字符串序列的意思,說白了也就是字符串); 8 2)replaceAll的參數是regex,即基於規則表達式的替換,比如,可以通過replaceAll("\\d", "*")把一個字符串所有的數字字符都換成星號; 9 */
10
11 /**
12 * 得到當前應用的系統路徑 13 */
14 public static String getSysPath() { 15 //從classpath根開始查找
16 String path = Thread.currentThread().getContextClassLoader() 17 .getResource("").toString(); 18 String temp = path.replaceFirst("file:/", "").replaceFirst( 19 "WEB-INF/classes/", ""); 20 //文件分隔符(在 UNIX 系統中是“/”)
21 String separator = System.getProperty("file.separator"); 22 String resultPath = temp.replaceAll("/", separator + separator); 23 return resultPath; 24 } 25
26 /**
27 * 得到當前應用生成class文件的系統路徑 28 */
29 public static String getClassPath() { 30 String path = Thread.currentThread().getContextClassLoader() 31 .getResource("").toString(); 32 String temp = path.replaceFirst("file:/", ""); 33 String separator = System.getProperty("file.separator"); 34 String resultPath = temp.replaceAll("/", separator + separator); 35 return resultPath; 36 } 37
38 /**
39 * 默認的臨時文件路徑 40 */
41 public static String getSystempPath() { 42 return System.getProperty("java.io.tmpdir"); 43 } 44
45 /**
46 * 文件分隔符(在 UNIX 系統中是“/”) 47 */
48 public static String getSeparator() { 49 return System.getProperty("file.separator"); 50 } 51
52 /**
53 * 控制台打印顯示 54 */
55 public static void main(String[] args) { 56 System.out.println(getSysPath()); 57 System.out.println(System.getProperty("java.io.tmpdir")); 58 System.out.println(getSeparator()); 59 System.out.println(getClassPath()); 60 } 61 }
1 文件終結符是 EOF, end of file
2 行分隔符在windows 下是 \r\n,在Linux下面是 \n, 在Mac下是 \r
3 路徑分隔符在windows下是 \ ,在LInux下是 /
轉載請注明出處!
http://www.cnblogs.com/libingbin/
感謝您的閱讀。如果文章對您有用,那么請輕輕點個贊,以資鼓勵。