On the subject of COM interop, I believe the only way you can do this in Java is to use the Java Native Interface, basically writing a C++ wrapper around your COM objects to expose them to the JVM.

I've found a tool, J-Integra for COM, which can talk to COM objects for you, but that costs $399 per developer seat plus a $149 per-client license.

If interfacing to existing COM objects is a requirement, I'd forget about Java.

If you need to make use of any OS facilities that the runtime library doesn't directly support, P/Invoke from .NET is far easier than JNI.