java_11_classpath

image.png

Project1

package com.pa;

public class JavaA {
    public void hello(){
        System.out.println("my name is A ! ");
    }
    
    public static void main(String[] args) {
        JavaA obj=new JavaA();
        obj.hello();
    }
}

Project2

package com.pb;

import com.pa.JavaA;

public class JavaB {
    public void hello(){
        System.out.println("my name is B ! ");
    }
    
    public static void main(String[] args) {
        JavaA a=new JavaA();
        a.hello();
        
        JavaB b=new JavaB();
        b.hello();
    }
}

Project3

package com.pc;

import com.pa.JavaA;
import com.pb.JavaB;

public class JavaC {
    public void hello(){
        System.out.println("my name is C ! ");
    }
    
    public static void main(String[] args) {
        JavaA a=new JavaA();
        a.hello();
        
        JavaB b=new JavaB();
        b.hello();
        
        JavaC c=new JavaC();
        c.hello();
    }
}

C:\test\java\09_类路径classpath\project2>javac -classpath c:/test com/pb/JavaB.java

C:\test\java\09_类路径classpath\project2>java -classpath ./;c:/test com.pb.JavaB
my name is A !
my name is B !

解析:

java -classpath ./;c:/test com.pb.JavaB

-classpath:指定class的查找路径
./:路径1,当前目录
;:多个路径用分号隔开
c:/test:路径2
com.pb.JavaB:要执行的java类

执行顺序:

  1. 先在./当前路径查找com/pb/JavaB.class,能找到
  2. JavaB用到了com.pa.JavaA
  3. 先再./当前路径查找com/pa/JavaA.class,找不到
  4. 再到c:/test路径下查找com/pa/JavaA.class,能找到,执行
  5. 若是都找不到,则报错类不存在
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容