最后,如果当前的classpath中能够找到指定的类,则程序显示包含该类的类文件所在位置的绝对路径名(21-24行)。作为一种调试辅助手段,如果当前classpath中不能找到指定的类,则程序获取java.class.path系统属性并显示当前的classpath(24-28行)。
很容易想象,在使用servlet引擎classpath的java servlet中,或者在使用ejb服务器classpath的ejb组件中,上面这段简单的代码是如何运作。例如,如果jwhich类是由servlet引擎的定制类装载器装入,那么程序将用servlet引擎的类装载器去寻找指定的类。如果servlet引擎的类装载器不能找到类文件,它将委托它的父类装载器。一般地,当jwhich被某个类装载器装入时,它能够找出当前类装载器以及所有其父类装载器所装入的所有类。
【结束语】如果需要是所有发明之母,那么帮助我们管理java类路径的工具可以说迟到了很长时间。java新闻组和邮件列表中充塞着许多有关classpath的问题,现在jwhich为我们提供了一个简单却强大的工具,帮助我们在任何环境中彻底玩转java类路径。
【参考资源】
jwhich的全功能版,包含一个classpath检验器:
http://www.clarkware.com/software/jwhich.zip
sun jdk的官方文档,以及在各种官方支持的平台上有关classpath的说明:
http://java.sun.com/j2se/1.3/docs/tooldocs/findingclasses.html
关于在windows和unix上设置classpath的详细说明,参见:
unix:
http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/classpath.html
windows:
http://java.sun.com/j2se/1.3/docs/tooldocs/win32/classpath.html
很容易想象,在使用servlet引擎classpath的java servlet中,或者在使用ejb服务器classpath的ejb组件中,上面这段简单的代码是如何运作。例如,如果jwhich类是由servlet引擎的定制类装载器装入,那么程序将用servlet引擎的类装载器去寻找指定的类。如果servlet引擎的类装载器不能找到类文件,它将委托它的父类装载器。一般地,当jwhich被某个类装载器装入时,它能够找出当前类装载器以及所有其父类装载器所装入的所有类。
【结束语】如果需要是所有发明之母,那么帮助我们管理java类路径的工具可以说迟到了很长时间。java新闻组和邮件列表中充塞着许多有关classpath的问题,现在jwhich为我们提供了一个简单却强大的工具,帮助我们在任何环境中彻底玩转java类路径。
【参考资源】
jwhich的全功能版,包含一个classpath检验器:
http://www.clarkware.com/software/jwhich.zip
sun jdk的官方文档,以及在各种官方支持的平台上有关classpath的说明:
http://java.sun.com/j2se/1.3/docs/tooldocs/findingclasses.html
关于在windows和unix上设置classpath的详细说明,参见:
unix:
http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/classpath.html
windows:
http://java.sun.com/j2se/1.3/docs/tooldocs/win32/classpath.html
闽公网安备 35060202000074号