Java has the Java Native Interface (JNI) technology to call to a C/C++ module with methods specially crafted just for this purpose. The C module could call to your C# module and back again. If your C# program is a COM server, Google for "java com bridge" frameworks. Some are free and some are good. Not sure any are both.

And you can go for inter-process communication over sockets or HTTP. I think there is a decent Java-DDE implementation, too.
Any of those sound promising? I don't do .net so I could easily be unaware of other really cool options.
[ October 17, 2005: Message edited by: Stan James ]