JAVA中classpath的作用与获取方式

来源:互联网 发布:知乎全年最佳吐槽 编辑:程序博客网 时间:2024/06/05 19:35

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

         

    

   

0 0