I'm having an issue determining which technologies to use in a cross-platform environment. Here's my thoughts so far.

* Java is a fine programming language, although I'm not very used to it. And since I prefer having access to things like Linq, delegates and so on that I have gotten used to in C#, I would rather not use it that much. I'm also not a huge fan of how Beans work compared to User Controls.
* C# is my preferred language. I love it, and I would call myself an expert within the field (not an expert within COM obviously though).
* C++ is a city in Russia to me. I feel like I'm walking blind when using this programming language, and that things take longer to make compared to C#.

I am making a backup system for a 4 week school project. However, I have greater intentions for it in the future. And for a backup system to succeed, it must have cross-platform compatibility.

So if I made a Class Library in C# .NET COM visible, and used that COM within a Java project containing a GUI, would the whole application still work cross-platform?