今天读了JAVA2核心技术第1卷:基础知识中的第4章,对其中的package的使用有些感悟与理解。
写了两个类PackageTest、Employee。PackageTest在默认包,Employee在com.horstmann.corejava包中。PackageTest中引用Employee类。
基路径F:/JavaProgram/packagetest。
F:/
JavaProgram/
packagetest/
com/
horstmann/
corejava/
Employee.java
Employee.class
PackageTest.java
以上是目录路径(虽然难看,能看懂就行了)
在命令行中敲入:
F:/JavaProgram/packagetest>javac com/horstmann/corejava/Employee.java
F:/JavaProgram/packagetest>javac packagetest.java
F:/JavaProgram/packagetest>java PackageTest
运行成功了。
关于classpath的讲解:
类路径所列出的目录和归档文件是搜寻类的起始点,下面看一个类路径示例:
/home/user/classdir;.;/home/user/archives/archive.jar
假设解释器要搜寻com.horstmann.corejava.Employee类文件。他首先要查看存储在jre/lib和jre/lib/ext目录下的归档文件中所存放的系统类文件。显然,在那里找不到相应的类文件,然后在查看classpath。于是查看:
/home/user/classdir/com/horstmann/corejava/Employee.class(带有package com.horstmann.corejava)
/com/horstmann/corejava/Employee.class
/home/user/archives/archive.jar中的com/horstmann/corejava/Employee.class
这就表示我们在保存java文件时,要将编译的class文件放入与包名对应的目录中。因为编译器是根据包名到相应的路径中查找.class文件。
当然改类必须是在这个包内,否则即使是取Employee.class名,也不会编译通过。