可以了. 试试看.

  前面提到了扩展类, 扩展类是什么呢? java 的扩展类是应用程序开发者用来扩展核心平台功能的 java 类的包(或者是 native code). 虚拟机能像使用系统类一样使用这些扩展类. 有人建议可以把包放入扩展目录里, 这样, CLASSPATH 也不用设了,也不用指定了, 岂不是很方便? 确实可以正确运行, 但是个人认为这样不好, 不能什么东西都往里搁, 一些标准的扩展包可以, 比如, JavaServlet, Java3D 等等. 可以提个建议, 加一个环境变量, 比如叫 JARPATH, 指定一个目录, 专门存放用户的 jar zip等包, 这个要等 SUN 公司来做了.  windows98 下, 我原来安装的时候, 一直装不上, 总是死机, 好不容易装上了, 缺省的是不能运行正确的, 然后把 tool.jar 放入 CLASSPATH 后工作正常. 现在作测试,去掉仍然是正确的. 经过多次测试, 发现如果原来曾装过 jdk 的都很好, 没有装过的,装的时候会死机, 多装几次可以了. 如果你发现正确安装后, 不能正常工作, 把tools.jar 加入 CLASSPATH, 试一下.

  二、 包 (package)

  Java 中的 "包" 是一个比较重要的概念, package 是这样定义的:Definition: A package is a collection of related classes and interfaces that provides access protection and namespace management.    也是: 一个包是一些提供访问保护和命名空间管理的相关类与接口的集合.   使用包的目的是使类容易查找使用, 防止命名冲突, 以及控制访问.    这里我们不讨论关于包的过多的东西, 只讨论和编译, 运行, 类路径相关的东西.至于包的其他内容, 请自己查阅相关文档.    简单一点来说, 包是一个目录, 下面的子包是子目录, 这个包里的类是这个目录下的文件. 我们用一个例子来说明.

  首先建目录结构如下: PackageTest/source/, 以后根目录指的是 PackageTest目录, 我们的源程序放在 source 目录下. 源程序如下:

PackageTest.java
package pktest;
import pktest.subpk.*;
public class PackageTest
{
private String value;
public PackageTest(String s)
{
value = s;
}
public void printValue()
{
System.out.println("Value of PackageTest is " + value);
}
public static void main(String[] args)
{
PackageTest test = new PackageTest("This is a Test Package");
test.printValue();
PackageSecond second = new PackageSecond("I am in PackageTest");
second.printValue();
PackageSub sub = new PackageSub("I am in PackageTest");
sub.printValue();
System.exit(0);
}
}
PackageSecond.java
package pktest;
public class PackageSecond
{
private String value;
public PackageSecond(String s)
{
value = s;
}
public void printValue()
{
System.out.println("Value of PackageSecond is " + value);
}
}
PackageSub.java
package pktest.subpk;
import pktest.*;
public class PackageSub
{
private String value;
public PackageSub(String s)
{
value = s;
}
public void printValue()
{
PackageSecond second = new PackageSecond("I am in subpackage.");
second.printValue();
System.out.println("Value of PackageSub is " + value);
}
}
Main.java
import pktest.*;
import pktest.subpk.*;
public class Main()
{
public static void main()
{
PackageSecond second = new PackageSecond("I am in Main");
second.printValue();
PackageSub sub = new PackageSub("I am in Main");
sub.printValue();
System.exit(0);
}
}

  其中,Main.java是包之外的一个程序,用来测试包外的程序访问包内的类,PackageTest.java属于pktest这个包,也是主程序.PackageSecond.java也属于pktest,PackageSub属于pktest下的subpk包,也是pktest.subpk.详细使用情况,请参看源程序.