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();
}
}

         

    

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章