I did manage to use the Java VM interface IJavaExecute to set up a class path for a DLL, using a wrapper. There is an obstacle, though: when the wrapper is registered as a COM DLL, it invokes the wrapped DLLs registration function which promptly registers the wrapped file instead of the wrapper. Oh well. The theory now is to write IDL for the IJavaExecute interface (which MS does not supply) and generate a Java wrapper for it so that it can be called from directly within the Java DLL. That should do the trick.