Java Technology Home Page
A-Z Index

Java Developer Connection(SM)
Online Training

Downloads, APIs, Documentation
Java Developer Connection
Tutorials, Tech Articles, Training
Online Support
Community Discussion
News & Events from Everywhere
Products from Everywhere
How Java Technology is Used Worldwide
 

Skeleton Code

This magercise takes you through the steps to create a custom class loader. The class loader you are about to create works like the default class loader, but instead of working with the CLASSPATH environment variable, you tell the class loader a specific directory to load class files from. The class loader will load any support files from the CLASSPATH, as classes like Object must come from trusted locations.

See the Class Loading course section for additional information.

Perform the following tasks:

  1. Working from the FileClassLoader.java skeleton, have FileClassLoader subclass ClassLoader.

  2. Find out if the requested class to loadClass is already loaded. Remember to check for system classes, too.

  3. If the class isn't loaded, you'll need to convert the class name to a file name and load the data from the class. The filename conversion is already done for you and the loading of the data is already done. The only thing you need to do is connect everything. Just call the private loadClassData method with the filename for the class. The method returns the data from the file in a byte array, so you'll need to save this.

  4. Once you have the class data in a byte array, convert the byte array into a Class. In the event the byte data is invalid, throw an exception.

  5. Resolve the class definition if appropriate.

  6. Return the class object just created.

  7. In the CLTester.java skeleton, create an instance of the FileClassLoader. Have the directory name that you use to load files from, come from the command line, as args[0].

  8. Next, have the test program load a class whose name will be provided from the command line, also, as args[1]. The public version of loadClass() doesn't have a resolve argument, and defaults to true.

  9. After loading the class, create an instance of it. You can use reflection and the Constructor object, or just the newInstance method if the class has a no argument constructor.

  10. The Tester.java file contains a test class to use for the class loader. The only thing it does is print messages when the class file is loaded and instances are created. Save and compile the file.

  11. If you have a "." in your CLASSPATH, move the Tester.class file to another directory.

  12. Run the CLTester program. The first argument to the program is the directory you just moved the Tester.class file to. The second argument is the class you want to load Tester.

The task numbers above are linked to the step-by-step help page. Also available is a complete solution to the problem, and a demonstration of the expected behavior.

Copyright © 1998 MageLang Institute. All Rights Reserved.

[ This page was updated: 15-Nov-99 ]

Products & APIs | Developer Connection | Docs & Training | Online Support
Community Discussion | Industry News | Solutions Marketplace | Case Studies
Glossary - Applets - Tutorial - Employment - Business & Licensing - Java Store - Java in the Real World
FAQ | Feedback | Map | A-Z Index
For more information on Java technology
and other software from Sun Microsystems, call:
(800) 786-7638
Outside the U.S. and Canada, dial your country's AT&T Direct Access Number first.
Sun Microsystems, Inc.
Copyright © 1995-99 Sun Microsystems, Inc.
All Rights Reserved. Legal Terms. Privacy Policy.