1. 程式人生 > >JAVA中classpath的作用與獲取方式

JAVA中classpath的作用與獲取方式

一、classpath的作用

1、當需要編譯JAVA原始檔時,設定classpath 可以解決需要編譯的class不在當前目錄下的問題。

      例如當前目錄是D:/java/demo,而需要執行的檔案在E:/java/classes/Test.class。

       javac -classpath E:/java/classes/Test.java 

     當需要執行java類檔案時,設定classpath的目標路徑

     java -classpath E:/java/classes/Test


      這時,如果設定classpath = "E:/java/classes",則可以寫成  java Test 

     總結:

     (1)何時使用classpath:當需要編譯的檔案和當前路徑不在同一個位置,需要加入-classpath 作為編譯路徑引數。

     (2)當需要執行的檔案不在當前路徑下,可以用classpath 來設定目標路徑。

      (3)classpath用來設定執行檔案,用來作為編譯和執行時的引數

       java -classpath  目標執行路徑

      javac  -classpath 目標編譯路徑

2、classpath的獲取

     (1)獲取當前檔案的絕對路徑

               this.getClass().getResource("/");

              this.getClass()/getClassLoader().getResource("");

             ClassLoader.getSystemResource("");

             Thread.currentThread().getContextClassLoader().getResource("");

             ServeletActionContext.getServletContext().getRealPath("/");web應用中獲取專案路徑。

      (2)獲取檔案的檔案位置,不包含當前類名稱

               this.getClass().getResource("");


   (3)示例程式碼:

package com.sufow.classpathdemo;


import java.net.URL;


public class GetClassPathDemo1 {


public void showThePath(){


URL url = this.getClass().getResource("");
System.out.println("檔案位置:"+url.getPath());


}

public void showTheAbsolutePath(){

//1
URL url = this.getClass().getResource("/");
System.out.println("檔案絕對路徑1:"+url.getPath());

//2
url = Thread.currentThread().getContextClassLoader().getResource("");
System.out.println("檔案絕對路徑2:"+url.getPath());


//3
url = ClassLoader.getSystemResource("");
System.out.println("檔案絕對路徑3:"+url.getPath());

}


public static void main(String args[]){


GetClassPathDemo1 demo1 = new GetClassPathDemo1();

demo1.showThePath();
demo1.showTheAbsolutePath();
}
}