The Microsoft VM for Java ships with the retail version of the Internet Explorer 4.01.
This release of the SDK for Java provides this VM in a stand-alone form, to be installed on the
retail version of the Internet Explorer 3.02 (or later). It supports the following:
Enhanced JIT
performance and reduced working set requirements
Enhanced interpreter
loop performance
JDK 1.1 Support
The
Microsoft Virtual Machine for Java supports a number of JDK 1.1 defined
enhancements, including Serialization, Reflection and Inner
classes.
Java and COM
The SafeArray class
now has public methods to access array data.
COM
custom marshalling provides better control of how data is passed
in and out of the virtual machine.
ActiveX and Java
Beans Support
Any
Bean is exposed as an ActiveX control and any ActiveX control is
exposed as a Bean.
Auto-IDispatch
now uses introspection to expose the necessary public classes
and variables.
ITypeInfo
is provided on a class automatically and a type library can be
persisted for a class.
Event
sourcing and sinking is supported.
Package
Management Features
The
Java Language Package Manager is used by the VM to efficiently organize Java
packages. For more information on this feature, please read the SDK documentation on Package Management.
The current method of installing and using Java packages consists of storing all the classes in a zip file and then appending this file to the CLASSPATH registry key. When the VM needs a class, it searches each CLASSPATH entry. The
CLASSPATH can become filled with references to packages that are
old or unused, or different versions of the same package. It is
also difficult to know which packages are needed and which are not.
To address these and other concerns, the Java Language Package Manager is used
to organize Java packages. The Java Package
Manager offers:
- Version
Control. Package version numbers are
tracked, allowing Java programs and installers to
intelligently update the system.
- Namespaces.
Entire applets and applications can be installed
in namespaces to avoid conflicting with identically named
packages and classes from other vendors.
- Improved
Security. Instead of having to fully trust
all installed classes, the package manager stores the
allowed permissions of each package, as verified by
Authenticode.
- Signing.
Through Authenticode signing, the package manager can
ensure that only the vendor that installed a package
can update it.
- ActiveX
Bean Support. ActiveX Beans in Java
packages can be automatically registered by the package manager.
- Ease
of Use. Web pages can install packages without
having to alter the CLASSPATH or require a reboot.
When
a Java package is installed in the Package Manager, the original
archive file is removed and the classes are stored internally.
Thus, developers need to use the clspack command (described in
the tools section) to
generate the ZIP files used by Java compilers. All of the
standard Java packages shipped with this version of the VM are
installed in the Package Manager, including the AFC classes.