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

         

    

   

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值