[JAVA] JAVA 类路径

Java 类路径

类路径是所有包含类文件的路径的集合。
类路径中的目录和归档文件是搜寻类的起始点。

虚拟机搜寻类

  • 搜寻jre/lib和jre/lib/ext目录中归档文件中所存放的系统类文件
  • 搜寻再从搜寻类路径

测试搜寻类

Person.java 源文件

public class Person
{
    private String name;

    public Person(String name)
    {
        this.name = name;
    }

    public void PrintName()
    {
        System.out.println("Name is:" + name);
    }
}

Welcome.java 源文件

/**
 * This program dispalys Hello World 
 * @version 1.0 
 * @author ABeen
 * */


public class Welcome
{
    public static void main(String[] args)
    {
        String greeting = "Hello World!";
        System.out.println(greeting);

        String name = "ABeen";
        Person e = new Person(name);
        e.PrintName();
    }
}

测试执行
在源码所在目录执行

mac-abeen:java abeen$ javac Welcome.java  编译正常
mac-abeen:java abeen$ java Welcome        执行正常
Hello World!
Name is:ABeen
mac-abeen:java abeen$ 

在非源码目录执行

编译代码

//未设置类路径,编译时找不到引用的源文件
mac-abeen:alearn abeen$ javac ./java/Welcome.java  
./java/Welcome.java:16: 错误: 找不到符号
        Person e = new Person(name);
        ^
  符号:   类 Person
  位置: 类 Welcome
./java/Welcome.java:16: 错误: 找不到符号
        Person e = new Person(name);
                       ^
  符号:   类 Person
  位置: 类 Welcome
2 个错误

//设置类路径
mac-abeen:alearn abeen$ javac -cp ./java ./java/Welcome.java  

执行代码

//未设置类路径
mac-abeen:alearn abeen$ java ./java/Welcome 
错误: 找不到或无法加载主类 ..java.Welcome
原因: java.lang.ClassNotFoundException: //java/Welcome

//设置类路径
mac-abeen:alearn abeen$ java --class-path=/Users/abeen/abeen/alearn/java Welcome
Hello World!
Name is:ABeen

包的代码编译, 在包的目录执行

➜  java pwd
/Users/abeen/abeen/alearn/java

➜  java ls
alearnJava  

➜  javac alearnJava/Welcome.java
➜  java alearnJava/Welcome 

---------------------

➜  alearn pwd
/Users/abeen/abeen/alearn

➜  alearn ls
aipythonnotebook               asm_c                          java                           

➜  alearn javac  -cp ./java/ ./java/alearnJava/Welcome.java    
 
➜  alearn java -cp ./java/  alearnJava/Welcome     
         
Hello World!
Name is:ABeen


posted @ 2018-02-06 23:55  ABeen  阅读(564)  评论(0编辑  收藏  举报