That's the danger. I see the Java Platform as much larger than the Windows 95 and NT environment, because it will spread out to a much larger number of devices, both large and small. So, if you want to write it once and run it everywhere, you will have to exercise caution as to how much you want to rely on the presence of Microsoft applications. At JavaOne we announced the effort and plan for the Java component architecture under the Java Beans project. The architecture is also being designed to allow Java components to be used in other architectures.
Components are an important way to think about applications.
Components allow you freedom to evolve the application by packaging it in different ways and allowing you to create new functionality. Component architecture is very much in line with the Java philosophy of developing small pieces that can be downloaded on demand. As the Java industry evolves, a traditional application will probably become much more like a framework into which components from multiple vendors are put. Components would be dynamically added by users in services of a particular task. Users construct the final application.