Java extensions are not anything special really. They are just other classes in the JDK. When Java was first developed (back in the version 1.0 days) all the standard classes were put in java.
abcd packages. They also included "non-standard" classes and packages at "extensions" in the extension packages of javax.
abcd. These extension classes were classes that Sun considered non-core (for the lack of a better description). The original plan was that at some point in the process of the JDK development and improvement that as extension classes matured, they could/would get moved into the standard (or core) classes by being change to java.
abcd packages. So javax.somePackage would become java.somePackage. However, it was realized that doing such would break existing programs and code and thus prevent them from being forward compatible. So if my program written for Java 1.0.2 used/imported javax.somePackage.SomeClass, if the package was moved and became java.somePackage.SomeClass in JDK 1.2, my program would not be compatible using 1.2 or later. Therefore, in the end, Sun did not employ this strategy and javax.
abcd packages stayed javax.
abcd packages.
Today extensions packages are simply other packages in the JDK. You really do not need to worry about them in any other way or try & determine what the differences are. Essentially, it is just a historical naming convention that has no significant meaning today. The only real significance is you need to remember if a package is part of java.* or java
x.*
[ February 14, 2004: Message edited by: Mark Vender ]