[JAVA] JAVA 类路径

时间:2021-06-02 16:52:22

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