<p>We've developed a Java application and would like to use this application from a C# client. The application has dependencies on Spring, Log4j, ... </p>

<p>What would be the most efficient mechanism - make DLL(s) from Java code, ... - to achieve this ?</p>

IKVM!
It is really awesome.  The only problem is that it DOES add ~30MB to the project.
log4net and Spring .NET are available as well, but if living with existing code, go the ikvm route.