If the MS VM uses DLLs to support things like java.lang or java.util, that
won't affect the class files it produces. All it would mean is that
whenever you access java.lang.String (or whatever), the VM would make a
DLL call. This would occur whether your class files were compiled from MS
or JDK or JBuilder. In general, the implementation of the various core
packges is implementation dependent and will vary from vendor to vendor
and platform to platform. For instance, the AWT classes are probably very
different under X than WIN32 :)
There _are_ non-standard things about the MS VM. It interpertes an
otherwise unused bytecode as a "magic flag" to DLL calls. This single
bytecode is what's causing all the fuss about 100% pure java. If you
disable the extensions as Craig suggests, you class files will not contain
the forbidden bytecode.
>
> Have you verified many Visual J++ .class files for pure Java?
>
Later this evening I will run some tests to be sure. However, be aware
that not all Sun JDK releases were created equal. Prior to JDK1.1.4 there
were bugs associated with inner classes (among other things) that make
some class files fail in newer versions. (The same problem exists using
newer class files on older JDKs.) Unfortunately, many 3rd party vendors
have also been slow to fix bugs in their compilers. Make sure you're
using the latest release (with patches) of whatever product you have.
Todd